Springboot プログラムによるトランザクション TransactionTemplate の使用方法
TransactionTemplate の使用
概要: TransactionTemplate をクラスに挿入して、スプリングブートでプログラムによるトランザクションを使用します。
spring は、プログラムによるトランザクション管理と宣言的なトランザクション管理という 2 つの方法をサポートしています。
プログラムによるトランザクション管理では、TransactionTemplate を使用するか、基盤となる PlatformTransactionManager を直接使用します。 Spring では、プログラミング トランザクションを管理するために TransactionTemplate を使用することを推奨しています。
宣言型トランザクション管理は AOP に基づいて構築されています。その本質は、前後のメソッドをインターセプトし、対象のメソッドが開始される前にトランザクションを作成または参加し、対象のメソッドの実行後、実行状況に応じてトランザクションをコミットまたはロールバックすることです。 Spring Boot では、 @Transactional アノテーションを使用して宣言型トランザクション管理を実装することをお勧めします。
1. なぜそれを使用するのでしょうか?
ほとんどの場合、メソッド上で @Transactional アノテーションを宣言するだけでトランザクションを宣言でき、簡単かつ高速で便利ですが、@Transactional 宣言型トランザクションの制御性は非常に弱く、メソッドまたはクラスで宣言されるため、きめ細かいトランザクション制御は不可能です。
メソッドの最初の 10 の SQL ステートメントがすべて選択クエリ ステートメントであり、最後の 2 つの SQL ステートメントのみが更新ステートメントである場合、最後の 2 つの SQL ステートメントのみを処理できます。
2.
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency>
を使用して mybatis-spring-boot-starter 依存関係パッケージを springboot に導入する方法。
mybatis-spring-boot-starter 依存関係パッケージには、spring-boot-starter-jdbc の依存関係が含まれています。spring-boot-starter-jdbc には、DataSourceTransactionManager トランザクション マネージャーと自動インジェクション構成クラス DataSourceTransactionManagerAutoConfiguration が含まれています。
コードで使用する場合は、TransactionTemplate を Bean に挿入するだけです:
@Service public class TestServiceImpl { @Resource private TransactionTemplate transactionTemplate; public Object testTransaction() { //数据库查询 dao.select(1); return transactionTemplate.execute(status -> { //数据库新增 dao.insert(2); dao.insert(3); return new Object(); }); } }
TransactionTemplate は簡単に使用できます
/** * 事务模板 * @author zz * */ public class TransactionTemplateSupport { @Autowired private PlatformTransactionManager transactionManager; private TransactionTemplate requiredTransactionTemplate; protected TransactionTemplate getRequiresNewTransactionTemplate(){ if (requiredTransactionTemplate == null){ requiredTransactionTemplate = new TransactionTemplate(transactionManager); requiredTransactionTemplate.setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRED); // requiredTransactionTemplate.setReadOnly(true); // requiredTransactionTemplate.setTimeout(30000); } return requiredTransactionTemplate; } }
@Service public class TestTransaction extends TransactionTemplateSupport { @Autowired private JdbcTemplate jdbcTemplate ; @Autowired private TransactionTemplate transactionTemplate; // @Transactional public void test(){ jdbcTemplate.execute("insert into user value (1,'aaa','aaa','aaa')"); int i = 1/0; jdbcTemplate.execute("insert into user value (2,'aaa','aaa','aaa')"); } public void test2(){ getRequiresNewTransactionTemplate() // transactionTemplate .execute(new TransactionCallback<Void>() { @Override public Void doInTransaction(TransactionStatus status) { jdbcTemplate.execute("insert into user value (11,'BBBB','aaa','aaa')"); int i = 1/0; jdbcTemplate.execute("insert into user value (21,'aaa','NNNN','aaa')"); return null; } }); } }
以上がSpringboot プログラムによるトランザクション TransactionTemplate の使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
