当前位置: 代码迷 >> J2EE >> conn.rollback();出错
  详细解决方案

conn.rollback();出错

热度:1131   发布时间:2016-04-17 23:05:48.0
conn.rollback();报错
public static int insert(int id,String name,String password){
 PreparedStatement st = null;
     ResultSet rs = null;
     Connection conn =null;     
try {

conn = JdbcUtil.getConnection();
conn.setAutoCommit(false);// 更改JDBC事务的默认提交方式
 String sql = "INSERT INTO fortest VALUES (?,?,?)";
 st = conn.prepareStatement(sql);
 st.setInt(1, id);
 st.setString(2, name);
 st.setString(3, password);
 st.executeUpdate();
 conn.commit();//提交JDBC事务
 conn.setAutoCommit(true);// 恢复JDBC事务的默认提交方式
 return 1;
           
} catch (SQLException e) {
// TODO Auto-generated catch block
conn.rollback();→→→→→→→→→→→→→→→→这里报错
e.printStackTrace();
return -1;

     
 }
------解决思路----------------------
throws Exception   
------解决思路----------------------
错误的内容是什么?

一般得加上非空判断

if(conn!=null) {
    conn.rollback();
}
------解决思路----------------------
Unhandled exception type SQLException的意思是:还有没有被处理的异常 SQLException

我复制你的代码进myeclipse都报错的

conn.rollback();有异常没有被处理

正确代码是:
------解决思路----------------------
楼上正确.....
------解决思路----------------------
哦,刚弄明白问题原来是编译时报红(IDE给的警告)而不是运行时报错呀

推荐阅读一下下面这篇文章
http://bbs.bccn.net/thread-442283-1-1.html

PS:
1)我这个人比较懒,爱总结一下问题,以后遇到相同问题直接发链接
2)发帖回帖太多了,自己以前好不容易写的东西都很难快速找到,所以有的时候发些外链,不好意si了
3)要是谁告诉我CSDN有没有类似功能,能很快找到以前自己发的内容【比如回答问题时,参考直接回答XX贴XX楼】这样的功能,就造福于我,造福于CSDN版友了……
  相关解决方案