This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 63c8007825b Refactor ShardingSphereConnection (#31720)
63c8007825b is described below
commit 63c8007825b63ae02ff76fbec1fdb9ba6e38984f
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jun 16 22:14:09 2024 +0800
Refactor ShardingSphereConnection (#31720)
---
.../core/connection/ShardingSphereConnection.java | 28 ++++++++++------------
1 file changed, 13 insertions(+), 15 deletions(-)
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
index 3baeccfb7c3..503c2a3d42a 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
@@ -96,18 +96,22 @@ public final class ShardingSphereConnection extends
AbstractConnectionAdapter {
* @throws SQLException SQL exception
*/
public void handleAutoCommit() throws SQLException {
- if (!autoCommit &&
!databaseConnectionManager.getConnectionTransaction().isInTransaction()) {
- if
(TransactionType.isDistributedTransaction(databaseConnectionManager.getConnectionTransaction().getTransactionType()))
{
- beginDistributedTransaction();
- } else {
- if
(!databaseConnectionManager.getConnectionContext().getTransactionContext().isInTransaction())
{
- databaseConnectionManager.getConnectionContext()
-
.getTransactionContext().beginTransaction(String.valueOf(databaseConnectionManager.getConnectionTransaction().getTransactionType()));
- }
- }
+ if (autoCommit ||
databaseConnectionManager.getConnectionTransaction().isInTransaction()) {
+ return;
+ }
+ if
(TransactionType.isDistributedTransaction(databaseConnectionManager.getConnectionTransaction().getTransactionType()))
{
+ beginDistributedTransaction();
+ } else if
(!databaseConnectionManager.getConnectionContext().getTransactionContext().isInTransaction())
{
+
databaseConnectionManager.getConnectionContext().getTransactionContext().beginTransaction(String.valueOf(databaseConnectionManager.getConnectionTransaction().getTransactionType()));
}
}
+ private void beginDistributedTransaction() throws SQLException {
+ databaseConnectionManager.close();
+ databaseConnectionManager.getConnectionTransaction().begin();
+
databaseConnectionManager.getConnectionContext().getTransactionContext().beginTransaction(String.valueOf(databaseConnectionManager.getConnectionTransaction().getTransactionType()));
+ }
+
/**
* Get traffic tnstance ID.
*
@@ -241,12 +245,6 @@ public final class ShardingSphereConnection extends
AbstractConnectionAdapter {
}
}
- private void beginDistributedTransaction() throws SQLException {
- databaseConnectionManager.close();
- databaseConnectionManager.getConnectionTransaction().begin();
-
databaseConnectionManager.getConnectionContext().getTransactionContext().beginTransaction(String.valueOf(databaseConnectionManager.getConnectionTransaction().getTransactionType()));
- }
-
@Override
public void commit() throws SQLException {
try {