getSqlMapClient().startTransaction();
getSqlMapClientTemplate().insert(sqlName, obj);
getSqlMapClient().commitTransaction();
getSqlMapClient().endTransaction();
无法向数据库插入数据 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>${driver}</value>
</property>
<property name="url">
<value>${URL}</value>
</property>
<property name="username">
<value>${user}</value>
</property>
<property name="password">
<value>${password}</value>
</property>
<property name="defaultAutoCommit">
<value>false</value>
</property>
</bean>数据源配置是不自动提交
getSqlMapClientTemplate().insert(sqlName, obj);
getSqlMapClient().commitTransaction();
getSqlMapClient().endTransaction();
无法向数据库插入数据 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>${driver}</value>
</property>
<property name="url">
<value>${URL}</value>
</property>
<property name="username">
<value>${user}</value>
</property>
<property name="password">
<value>${password}</value>
</property>
<property name="defaultAutoCommit">
<value>false</value>
</property>
</bean>数据源配置是不自动提交
解决方案 »
- OSGI中怎么用Endpoint.publish
- struts2 上传swf文件出错
- java.lang.NullPointerException如何解决
- 请教一个问题:hibernate中session.createQuery语句问题!如何实现在where条件后跟两个条件呢????
- b/s公交查询系统 hql(站站,站点查询)语句写不来了,总是报错,求救。。。
- [征求]J2EE深圳公司急寻电子商务网站开发高手或团队,全职或外包皆可
- 跪求!!!---EJB客户端如何显示数据记录?---:(
- 如何不让jTable的行可以多选
- 急!!!!Struts1.1中,当我在页面上递交多条需要修改的记录的时候如何映射到FormBean?(比如明细关系))
- maven新手请教
- 该用啥设计模式?
- thread dump 代码
ibatis自己启动、提交事务是无效的
设置数据源不自动提交后
<property name="defaultAutoCommit">
<value>false</value>
</property>
事务控制在service也无法插入记录,log4j输出sql是执行了的事务没提交
getSqlMapClientTemplate().insert(sqlName, obj);
是不是有点形式大于内容了
不配置defaultAutoCommit的话,spring事务就不起作用,怎么办啊···
事务交给spring管理
但是defaultAutoCommit默认true的时候,事务回滚貌似是有问题的
但是配置了defaultAutoCommit为false 事务可以回滚
mybatis将你同一个SqlSession上的操作封装到一个事物。
SqlSession 的commit()。就是提交事务啊。
this.getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
// 实现回调接口
public Object doInSqlMapClient(SqlMapExecutor executor)
throws SQLException {
executor.startBatch(); // 开始批处理
executor.delete("deleteColumnInfo_NMB",vName);
executor.delete("deleteMyView",vName);
String os=Tools.getOsDBUser(appid);
executor.delete("createMyView","DROP VIEW "+os+".M_V_"+vName);
// 执行批处理
executor.executeBatch();
return null;
}
});
}
SqlMapClient sqlMapClient = getSqlMapClient();
Connection con = null;
boolean autoCommit = false;
try {
con = sqlMapClient.getDataSource().getConnection();
autoCommit = con.getAutoCommit();
// false 设置数据源不自动提交
con.setAutoCommit(false);
sqlMapClient.setUserConnection(con);
// 开始批处理
sqlMapClient.startBatch();
for (TelephoneVo telephoneVo : telephoneList) {
sqlMapClient.update("tele_insertTelephone", telephoneVo);
}
// 执行批处理
sqlMapClient.executeBatch();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
//将数据源提交方式改回来 true
con.setAutoCommit(autoCommit);
} catch (SQLException e) {
e.printStackTrace();
}
}
}