Skip to content

Commit cf96d47

Browse files
committed
Add option to disable autoCommit in MyBatis - similar to the SetAutoCommitAllowed property in iBatis 2.x. Forgot how picky WebSphere is about this :)
1 parent 1fbaa4b commit cf96d47

File tree

4 files changed

+16
-3
lines changed

4 files changed

+16
-3
lines changed

doc/en/MyBatis-3-User-Guide.doc

-82.5 KB
Binary file not shown.

doc/en/MyBatis-3-User-Guide.pdf

673 KB
Binary file not shown.

src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransaction.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,17 @@ public class JdbcTransaction implements Transaction {
1414

1515
protected Connection connection;
1616

17-
public JdbcTransaction(Connection connection, boolean desiredAutoCommit) {
17+
public JdbcTransaction(Connection connection, boolean desiredAutoCommit, boolean allowAutoCommit) {
1818
this.connection = connection;
19-
setDesiredAutoCommit(desiredAutoCommit);
19+
if (allowAutoCommit) {
20+
setDesiredAutoCommit(desiredAutoCommit);
21+
}
2022
}
2123

24+
public JdbcTransaction(Connection connection, boolean desiredAutoCommit) {
25+
this(connection, desiredAutoCommit, true);
26+
}
27+
2228
public Connection getConnection() {
2329
return connection;
2430
}

src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransactionFactory.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,19 @@
77
import java.util.Properties;
88

99
public class JdbcTransactionFactory implements TransactionFactory {
10+
private Properties properties;
1011

1112
public void setProperties(Properties props) {
13+
this.properties = props;
1214
}
1315

1416
public Transaction newTransaction(Connection conn, boolean autoCommit) {
15-
return new JdbcTransaction(conn, autoCommit);
17+
if (properties != null && properties.containsKey("allowAutoCommit")) {
18+
return new JdbcTransaction(conn, autoCommit,
19+
Boolean.valueOf(properties.getProperty("allowAutoCommit")));
20+
} else {
21+
return new JdbcTransaction(conn, autoCommit);
22+
}
1623
}
1724

1825
}

0 commit comments

Comments
 (0)