导航
  • 主页
  • Java SE
  • J2ME
  • Web开发
  • Java EE
  • Eclipse
  • 问答

请问各路大神,Java执行事务应该怎么写呀?小的实在是找了几天也没找到呀,现在是commit时报错:使用分布式事务时无法调用提交,看了所有的SQL执行结果都是1

琴声何来 2020-11-02 10:32:59
如题

public Boolean JdbcUpdate (List<String> sqls, List<Object[]> args) {
Connection conn = null;
PreparedStatement stmt = null;
Boolean res = false;
try {
conn = getDataSource().getConnection();
conn.setAutoCommit(false);
for (int i = 0; i < sqls.size(); i++) {
stmt = conn.prepareStatement(sqls.get(i));
for (int j = 0; j < args.get(i).length; j++) {
stmt.setObject(j + 1, args.get(i)[j]);
}
int res1 = 0;
res1 = stmt.executeUpdate();
res1 = res1;
}
conn.commit();
res = true;
}
catch(Exception e){……}
}
...全文
6429 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
maradona1984 2020-12-31
引用 10 楼 琴声何来 的回复:
[quote=引用 9 楼 maradona1984 的回复:]信息太少,我看这项目应该不是练手项目,最好找同事问问. 一般事务都是不需要你去commit的,现在基本都是托管给spring来控制的,看你的错误貌似不是用spring的. 还涉及到struts,服务器用的weblogic,估计是家大公司的老项目,你也许被外包过去的? 如果是用到ejb之类的东西,也是不需要commit的,事务都是托管的,你直接点到commit方法里怕是就只有一行代码抛异常的代码
非常感谢,我看项目源代码时,发现很多地方都没有使用事务,于是就模拟这写了这么个方法,这个项目有点复杂,里面也有spring,也有ejb,(我是个java新手),我再研究研究怎么个托管法[/quote] 托管的意思是上层已经处理了,你不需要考虑事务的问题了
回复
琴声何来 2020-12-31
引用 9 楼 maradona1984 的回复:
信息太少,我看这项目应该不是练手项目,最好找同事问问.

一般事务都是不需要你去commit的,现在基本都是托管给spring来控制的,看你的错误貌似不是用spring的.

还涉及到struts,服务器用的weblogic,估计是家大公司的老项目,你也许被外包过去的?
如果是用到ejb之类的东西,也是不需要commit的,事务都是托管的,你直接点到commit方法里怕是就只有一行代码抛异常的代码

非常感谢,我看项目源代码时,发现很多地方都没有使用事务,于是就模拟这写了这么个方法,这个项目有点复杂,里面也有spring,也有ejb,(我是个java新手),我再研究研究怎么个托管法
回复
maradona1984 2020-12-30
信息太少,我看这项目应该不是练手项目,最好找同事问问. 一般事务都是不需要你去commit的,现在基本都是托管给spring来控制的,看你的错误貌似不是用spring的. 还涉及到struts,服务器用的weblogic,估计是家大公司的老项目,你也许被外包过去的? 如果是用到ejb之类的东西,也是不需要commit的,事务都是托管的,你直接点到commit方法里怕是就只有一行代码抛异常的代码
回复
琴声何来 2020-12-30
再挣扎一下下
回复
琴声何来 2020-11-03

错误中写着 Cannot call commit when using distributed transactions
回复
KeepSayingNo 2020-11-03
你这个没用到事务啊,和事务有什么关系,把报错发出来
回复
太菜了12138 2020-11-02
你调用一下事务的开启方法
回复
琴声何来 2020-11-02
看了好多前人的经验都是用的不带参数的sql,不知是不是带了参数就不能这么写了
回复
琴声何来 2020-11-02
引用 1 楼 太菜了12138 的回复:
你事物开启了吗

我看大家说的事务是默认开启的,写con.setAutoCommit(false)就可以了呀
回复
太菜了12138 2020-11-02
你事物开启了吗
回复
发动态
发帖子
Java
创建于2007-09-28

4.6w+

社区成员

Java相关技术讨论
申请成为版主
社区公告
暂无公告