若存储过程为:
CREATE PROCEDURE ss()
begin
update consignee set stic = 1;
end;在java 调用执行后: int s = cstmt.executeUpdate();s 的值 > 0; (即update 了多少条,就输出多少条数值);但:CREATE PROCEDURE ss()
begin
START TRANSACTION;
update consignee con set stic = 1;
COMMIT;
end;在存储过程里,加上事务后, 再在java 里调用时, s = cstmt.executeUpdate(); s 却 = 0 ;不知道为什么,有哪位同志碰到过吗?
CREATE PROCEDURE ss()
begin
update consignee set stic = 1;
end;在java 调用执行后: int s = cstmt.executeUpdate();s 的值 > 0; (即update 了多少条,就输出多少条数值);但:CREATE PROCEDURE ss()
begin
START TRANSACTION;
update consignee con set stic = 1;
COMMIT;
end;在存储过程里,加上事务后, 再在java 里调用时, s = cstmt.executeUpdate(); s 却 = 0 ;不知道为什么,有哪位同志碰到过吗?
解决方案 »
- SSH 添加操作时,外键ID存储为空。
- 在mina中触发 IoHandlerAdapter的sessionIdle方法5
- Hibernate框架空指针
- 数据库关闭问题
- 问一个 logic:iterate 标签 属性值的问题
- 在TOMCAT上跑没有问题,但是在OC4J上不行!不能一次给200分,解决后开贴再送!
- servlet 问题 急!请各位高手指点迷津!
- 有没有在西安想学习JAVA的朋友????比较着急
- tomcat+sqlserver2000数据库连接池配置问题!急!
- 新手的JBUILD CRACK 问题, 还有EJB 问题, 帮我们大虾!!!!
- JSP里面怎么实现执行一个sql语句并且返回一个int类型的变量?(我的Sql语句都写在存储过程里面的)
- ${10*10 ne 10}
你设置的别名 con 就没用啊? sql很短 就不要别名了。
http://java.sun.com/javase/6/docs/api/java/sql/Statement.html#executeUpdate(java.lang.String)Returns:
either (1) the row count for SQL Data Manipulation Language (DML) statements or (2) 0 for SQL statements that return nothing你可以在命令行状态下执行一下你的存储过程,看看显示的执行结果是什么?如果想知道存储过程的内容执行的更新语句的信息,你需要使用CallableStatement,然后用输出参数来取得.
第二种情况,存储过程的最后一个命令是commit,对于数据库来说,能正常提交事务时该命令的返回值是0,否则是0以外的值,该返回值被数据库传给了java
所以两种情况的结果就不一样了