iBatis配置:
事务默认自动提交:
手动事务:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings cacheModelsEnabled="true" enhancementEnabled="true"
lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"
maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost/test" />
<property name="JDBC.Username" value="root" />
<property name="JDBC.Password" value="mysql" />
<!-- 下面这个属性其实没有意义,都会被设置为false -->
<!--<property name="JDBC.DefaultAutoCommit" value="true" />-->
<property name="Pool.MaximumActiveConnections" value="10" />
<property name="Pool.MaximumIdleConnections" value="5" />
<property name="Pool.MaximumCheckoutTime" value="120000" />
<property name="Pool.TimeToWait" value="500" />
<property name="Pool.PingQuery" value="select 1 from sample" />
<property name="Pool.PingEnabled" value="false" />
<property name="Pool.PingConnectionsOlderThan" value="1" />
<property name="Pool.PingConnectionsNotUsedFor" value="1" />
</dataSource>
</transactionManager>
<sqlMap resource="com/angi/ibatis/maps/User.xml" />
</sqlMapConfig>
事务默认自动提交:
User user = new User();
user.setName("Angi00011@gmail.com");
user.setSex(new Integer(1));
sqlMap.insert("insertUser", user);
手动事务:
try {
sqlMap.startTransaction();
User user = new User();
user.setName("Angi0007@gmail.com");
user.setSex(new Integer(1));
sqlMap.insert("insertUser", user);
sqlMap.commitTransaction();
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
sqlMap.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println("Insert successfully!");
}