弱弱小问题,关于jdbc

AslenG 2012-01-04 04:52:08
我用jdbc写的,这样子:
...
conn.prepareStatement(sql1);
conn.prepareStatement(sql2);
pstmt.execute();

这样子两天sql会不会一起执行啊!?
...全文
182 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
AslenG 2012-01-06
  • 打赏
  • 举报
回复
谢谢大家,幸苦了!你们的意见我采纳了,事务和批处理都是verygood的选择,3Q!
达布留西 2012-01-06
  • 打赏
  • 举报
回复
弄个本地数据库,如mysql测试一下就ok了。
iori20099 2012-01-06
  • 打赏
  • 举报
回复
不好意思少了个rollback,在出现异常的时候要rollback
iori20099 2012-01-06
  • 打赏
  • 举报
回复
JDBC执行批量SQL

Connection con=null;
Statement st =null;
try {
con = DriverManager.getConnection("","","");
con.setAutoCommit(false);
st=con.createStatement();
st.addBatch("sql1");
st.addBatch("sql2");
st.addBatch("....");
st.addBatch("sqln");
st.executeBatch();
con.commit();


} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(st!=null){
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(con!=null){
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

}
}
lingxiasandu 2012-01-05
  • 打赏
  • 举报
回复
conn.prepareStatement(sql1);
conn.prepareStatement(sql2);
pstmt.execute();
我认为只能执行sql2的语句,因为楼主只execute了一次。
还是连接数据库测试为妙啊。。
混子2008 2012-01-05
  • 打赏
  • 举报
回复
只能执行sql2,想两个都执行,采用10楼的方法。
zengjz88 2012-01-05
  • 打赏
  • 举报
回复
程序是一步一步执行下去的,肯定是会执行,你要执行2条sql的结果,那你做2次处理结果咯。
你说效率问题,那你就把sql执行效率写好点
土匪八号 2012-01-05
  • 打赏
  • 举报
回复
用批处理搞定
qingtingnayongheng 2012-01-05
  • 打赏
  • 举报
回复
自己尝试,
艳沐石 2012-01-05
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 leehomwong 的回复:]

写事务呗。。
[/Quote]

+1

对啊,可以写事务来控制啊~~

你也可以通过批处理吧,把两个语句拼接成一个字符串,sql结束有分号,应该可以执行。
24K純帥 2012-01-05
  • 打赏
  • 举报
回复
写事务呗。。
小基 2012-01-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 clowind 的回复:]

引用 9 楼 qq26867224 的回复:

想做俩次可以用同一个connection对象对其操作事务执行俩次execute()
0.0#

言下之意这样?:
Java code
……
conn.prepareStatement(sql1);
pstmt.execute();
conn.prepareStatement(sql2);
pstmt.execute();
[/Quote]

这样应该可以吧
qq26867224 2012-01-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 clowind 的回复:]

引用 9 楼 qq26867224 的回复:

想做俩次可以用同一个connection对象对其操作事务执行俩次execute()
0.0#

言下之意这样?:
Java code
……
conn.prepareStatement(sql1);
pstmt.execute();
conn.prepareStatement(sql2);
pstmt.execute();
[/Quote]
确实、
能执行、
不过其效率什么的还有待考究、
AslenG 2012-01-04
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 qq26867224 的回复:]

想做俩次可以用同一个connection对象对其操作事务执行俩次execute()
0.0#
[/Quote]
言下之意这样?:
……
conn.prepareStatement(sql1);
pstmt.execute();
conn.prepareStatement(sql2);
pstmt.execute();
qq26867224 2012-01-04
  • 打赏
  • 举报
回复
想做俩次可以用同一个connection对象对其操作事务执行俩次execute()
0.0#
AslenG 2012-01-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 llqzy 的回复:]

只执行sql2
[/Quote]
就怕这样。
AslenG 2012-01-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiaochende02 的回复:]

还真没做过实验,你可以试下
[/Quote]
客户的数据库伤不起啊…………
AslenG 2012-01-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lxm_yl 的回复:]

说2次都把话说错了,
[/Quote]
555
llqzy 2012-01-04
  • 打赏
  • 举报
回复
只执行sql2
xiaochende02 2012-01-04
  • 打赏
  • 举报
回复
还真没做过实验,你可以试下
加载更多回复(3)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧