java 在Oracle怎么一次执行多条sql语句,求大神!
如图:我想执行一条或多条语句,但是用下面的方法,如果只有一条语句时可以,但是如果多条就不行了,加了分号“;”,或像网上使用beginend;都不行。用createStat...
如图:
我想执行一条或多条语句,但是用下面的方法,如果只有一条语句时可以,但是如果多条就不行了,
加了分号“;”,或像网上使用begin end;都不行。用createStatement()也不能执行多条。
下面这里是分两次提交的,可以
但是上边的,不能写成这样,因为在上边的我是不确定要执行一条还是多条,所以不能定死它。 展开
我想执行一条或多条语句,但是用下面的方法,如果只有一条语句时可以,但是如果多条就不行了,
加了分号“;”,或像网上使用begin end;都不行。用createStatement()也不能执行多条。
下面这里是分两次提交的,可以
但是上边的,不能写成这样,因为在上边的我是不确定要执行一条还是多条,所以不能定死它。 展开
1个回答
推荐于2017-12-16
展开全部
批了执行SQL最好的办法是采用事务机制。具体百度下Java事务,以下是抄来的简单例子。
public int delete(int sID) {
dbc = new DataBaseConnection();
Connection con = dbc.getConnection();
try {
con.setAutoCommit(false);// 更改JDBC事务的默认提交方式
dbc.executeUpdate("delete from bylaw where ID=" + sID);
dbc.executeUpdate("delete from bylaw _content where ID=" + sID);
dbc.executeUpdate("delete from bylaw _affix where bylawid=" + sID);
con.commit();//提交JDBC事务
con.setAutoCommit(true);// 恢复JDBC事务的默认提交方式
dbc.close();
return 1;
}
catch (Exception exc) {
con.rollBack();//回滚JDBC事务
exc.printStackTrace();
dbc.close();
return -1;
}
}
不过仔细看楼主的设计,没必要采用多条SQL。直接String拼成update XSB set XM='FF', ZF='rj' where XH ='101102'就可以了
更多追问追答
追问
你这还是单条执行,虽然这里是执行三条。你这种还是定死了,我在里面有提到我不确定是执行一条还是多条,你这里如果我只需要执行两句,有一条不存在,但是写定在这里了,它接收到的值为null,肯定会报错。
追答
都是Update XSB ... ...where Xh='' 为什么一定写成多条?真的写成多条你可以选择用List传值。用一条执行语句执行多条SQL是不行的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询