如teddy_huang(生活多美好,睡觉) 所说,其实不是JSP的问题,是JDBC的问题。
一般默认是自动提交的,也就是说你一运行提交或查询等操作就自动向数据库提交,事务处理就时尼做一大堆尤其是相关联的操作后再一起提交,要么全部成功,要么全部失败,不会造成数据的不一致;所以首先要设为不是自动提交的:
conn.setAutoCommit(false);
然后进行你的更新操作。
然后提交
conn.commit();
如果失败:
conn.rollback();
conn.setAutoCommit(true);
不论怎样最后都要恢复默认状态:
conn.setAutoCommit(true);
一般默认是自动提交的,也就是说你一运行提交或查询等操作就自动向数据库提交,事务处理就时尼做一大堆尤其是相关联的操作后再一起提交,要么全部成功,要么全部失败,不会造成数据的不一致;所以首先要设为不是自动提交的:
conn.setAutoCommit(false);
然后进行你的更新操作。
然后提交
conn.commit();
如果失败:
conn.rollback();
conn.setAutoCommit(true);
不论怎样最后都要恢复默认状态:
conn.setAutoCommit(true);
解决方案 »
- 急求ssh2分页显示案例,全分相送
- 上传路径问题
- 通过jsp将excel表格中的数据导入sql 2000数据库表中
- 我就要失业了!!
- 那位大哥有网上开店系统(jsp版)的下载地址
- JDBC driver is not on the CLASSPATH
- 如何处理网上商城的订单系统中的订单锁定和解锁?
- 我的jb +tomcat启动错误。大家帮助看看
- 最新的DreamWeaver CS4中 jsp似乎无法连数据库啊?
- org.hibernate.MappingException: Unknown entity: com.kaxaka.exam.bean.User
- 救急!中文问题!!utf-8编码转成GBK,因为位数不同而产生字符丢掉问题!!
- jsp+状态会话BEAN的问题:请问如何在页面转换的时候传递这个SFSB???
try{
conn=DriverManager.getConnection(sConnStr);
conn.setAutoCommit(false);
stmt=conn.createStatement();
for(int i=0;i<sql.length;i++){
stmt.executeUpdate(sql[i]);
}
conn.commit();
}
catch(SQLException e){
System.err.println("executeUpdate error:"+e.getMessage());
conn.rollback();
}
createStatement方法里有两个参数要设置,如果设置不正确,可能会不允许你写数据库或者用游标。
如果这方面没问题了,还是不能用事务的话就是你的数据库的事了,可能要升级或者配置,我记得Sybase要运行一个升级SQL文件.
conn=DriverManager.getConnection(sConnStr);
conn.setAutoCommit(false);
stmt=conn.createStatement();
for(int i=0;i<sql.length;i++){
stmt.executeUpdate(sql[i]);
}
conn.commit();
}
catch(SQLException e){
System.err.println("executeUpdate error:"+e.getMessage());
conn.rollback();
conn.setAutoCommit(true);
}finally{
conn.setAutoCommit(true);
}