如题
本人是新手,写了一段想调用存储过程的代码,总是出错,请高手给予指点 //
strSQL = "insert into b(bh) values(" + bh + ")";
db.execute(strSQL);
这样写就不会出错
如果如下写:
strSQL = "{call putb(?)}";
db.setString(1,bh);
db.execute(strSQL);
就出错请问正确写法
本人是新手,写了一段想调用存储过程的代码,总是出错,请高手给予指点 //
strSQL = "insert into b(bh) values(" + bh + ")";
db.execute(strSQL);
这样写就不会出错
如果如下写:
strSQL = "{call putb(?)}";
db.setString(1,bh);
db.execute(strSQL);
就出错请问正确写法
CallableStatement db = null;
db = conn.prepareCall(strSQL);
db.setString(1,bh);
db.execute(strSQL);
String bh='123123';
strSQL = "{call putb('"+bh+"')}";
db.execute(strSQL); 就能成功,就是希望能用
strSQL = "{call putb(?)}";
这样的格式,
请指点
to zhouzongjiu
不是的,db 就是建立了一个连接,是
prepstmt = conn.prepareStatement(sql);
prepstmt = conn.prepareStatement(sql);
改成
CallableStatement cs= conn.prepareCall(sql);
就可以了
for (int i = 0; i < list.size(); i++) {
conn.setAutoCommit(false);
XmlBean xx= (XmlBean) list.get(i);
String flag = xx.getFlag();
List Alist = xx.getAList();
for (int j = 0; j < Alist .size(); j++) {
XmlBean B= (XmlBean) Alist .get(j);
String CC= B.getB();
int xh = B.getXh();
strSQL = "{call putb(?,?,?)}";
db=conn.prepareCall(strSQL);
db.setString(1,flag);
db.setString(2,CC);
db.setInt(3,xh);
db.execute();
db.close();
}
strSQL = "{call puta(?)}";
db=dbpool.prepareCall(strSQL);
db.setString(1,flag);
db.execute();
db.close();
dbpool.commit();
}