This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 2d92f46dc28 Remove `TransactionTypeHolder` document(#25674) (#25707)
2d92f46dc28 is described below
commit 2d92f46dc2824c11111a1769402dbe9f3967b6e7
Author: ZhangCheng <[email protected]>
AuthorDate: Wed May 17 08:38:43 2023 +0800
Remove `TransactionTypeHolder` document(#25674) (#25707)
---
.../special-api/transaction/java-api.cn.md | 24 ++++++++++------------
.../special-api/transaction/java-api.en.md | 24 ++++++++++------------
.../jdbc/java/repository/jdbc/OrderRepository.ftl | 14 +------------
3 files changed, 23 insertions(+), 39 deletions(-)
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/special-api/transaction/java-api.cn.md
b/docs/document/content/user-manual/shardingsphere-jdbc/special-api/transaction/java-api.cn.md
index e818b6b590e..0d2ac093d27 100644
---
a/docs/document/content/user-manual/shardingsphere-jdbc/special-api/transaction/java-api.cn.md
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/special-api/transaction/java-api.cn.md
@@ -25,7 +25,7 @@ weight = 1
<version>${shardingsphere.version}</version>
</dependency>
-<!-- 使用 XA 的 Narayana模式时,需要引入此模块 -->
+<!-- 使用 XA 的 Narayana 模式时,需要引入此模块 -->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-transaction-xa-narayana</artifactId>
@@ -40,22 +40,20 @@ weight = 1
</dependency>
```
-
## 操作步骤
-1. 设置事务类型
-2. 执行业务逻辑
+使用事务执行业务逻辑
## 配置示例
```java
-TransactionTypeHolder.set(TransactionType.XA); // 支持 TransactionType.LOCAL,
TransactionType.XA, TransactionType.BASE
- try (Connection conn = dataSource.getConnection()) { // 使用
ShardingSphereDataSource
- conn.setAutoCommit(false);
- PreparedStatement ps = conn.prepareStatement("INSERT INTO t_order
(user_id, status) VALUES (?, ?)");
- ps.setObject(1, 1000);
- ps.setObject(2, "init");
- ps.executeUpdate();
- conn.commit();
- }
+// 使用 ShardingSphereDataSource 获取连接,执行事务操作
+try (Connection connection = dataSource.getConnection()) {
+ connection.setAutoCommit(false);
+ PreparedStatement preparedStatement = connection.prepareStatement("INSERT
INTO t_order (user_id, status) VALUES (?, ?)");
+ preparedStatement.setObject(1, 1000);
+ preparedStatement.setObject(2, "init");
+ preparedStatement.executeUpdate();
+ connection.commit();
+}
```
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/special-api/transaction/java-api.en.md
b/docs/document/content/user-manual/shardingsphere-jdbc/special-api/transaction/java-api.en.md
index d1ea538575c..d44c61ec990 100644
---
a/docs/document/content/user-manual/shardingsphere-jdbc/special-api/transaction/java-api.en.md
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/special-api/transaction/java-api.en.md
@@ -25,7 +25,7 @@ Introducing Maven dependency
<version>${shardingsphere.version}</version>
</dependency>
-<!-- This module is required when using XA's Narayana mode -->
+<!-- This module is required when using the Narayana mode with XA transactions
-->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-transaction-xa-narayana</artifactId>
@@ -40,22 +40,20 @@ Introducing Maven dependency
</dependency>
```
-
## Procedure
-1. Set the transaction type
-2. Perform the business logic
+Perform the business logic using transactions
## Sample
```java
-TransactionTypeHolder.set(TransactionType.XA); // support
TransactionType.LOCAL, TransactionType.XA, TransactionType.BASE
- try (Connection conn = dataSource.getConnection()) { // use
ShardingSphereDataSource
- conn.setAutoCommit(false);
- PreparedStatement ps = conn.prepareStatement("INSERT INTO t_order
(user_id, status) VALUES (?, ?)");
- ps.setObject(1, 1000);
- ps.setObject(2, "init");
- ps.executeUpdate();
- conn.commit();
- }
+// Use ShardingSphereDataSource to get a connection and perform transaction
operations.
+try (Connection connection = dataSource.getConnection()) {
+ connection.setAutoCommit(false);
+ PreparedStatement preparedStatement = connection.prepareStatement("INSERT
INTO t_order (user_id, status) VALUES (?, ?)");
+ preparedStatement.setObject(1, 1000);
+ preparedStatement.setObject(2, "init");
+ preparedStatement.executeUpdate();
+ connection.commit();
+}
```
diff --git
a/examples/shardingsphere-example-generator/src/main/resources/template/jdbc/java/repository/jdbc/OrderRepository.ftl
b/examples/shardingsphere-example-generator/src/main/resources/template/jdbc/java/repository/jdbc/OrderRepository.ftl
index b82a00831b7..fc74a5248d9 100644
---
a/examples/shardingsphere-example-generator/src/main/resources/template/jdbc/java/repository/jdbc/OrderRepository.ftl
+++
b/examples/shardingsphere-example-generator/src/main/resources/template/jdbc/java/repository/jdbc/OrderRepository.ftl
@@ -19,10 +19,6 @@
package org.apache.shardingsphere.example.${package}.${framework?replace('-',
'.')}.repository;
import org.apache.shardingsphere.example.${package}.${framework?replace('-',
'.')}.entity.Order;
-<#if transaction!="local">
-import org.apache.shardingsphere.transaction.api.TransactionType;
-import org.apache.shardingsphere.transaction.core.TransactionTypeHolder;
-</#if>
import javax.sql.DataSource;
import java.sql.Connection;
@@ -109,13 +105,8 @@ public final class OrderRepository {
public Long insert(final Order order) throws SQLException {
String sql = "INSERT INTO t_order (user_id, order_type, address_id,
status) VALUES (?, ?, ?, ?)";
- <#if transaction?contains("xa")>
- TransactionTypeHolder.set(TransactionType.XA);
- <#elseif transaction?contains("base")>
- TransactionTypeHolder.set(TransactionType.BASE);
- </#if>
try (Connection connection = dataSource.getConnection();
- PreparedStatement preparedStatement =
connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
+ PreparedStatement preparedStatement =
connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
<#if transaction!="local">
connection.setAutoCommit(false);
</#if>
@@ -132,10 +123,7 @@ public final class OrderRepository {
<#if transaction!="local">
connection.commit();
</#if>
- }<#if transaction!="local"> finally {
- TransactionTypeHolder.clear();
}
- </#if>
return order.getOrderId();
}