jhyh001 2011-03-14 16:14
浏览 635
已采纳

关于jdbc的AutoCommit自动提交的问题

下面有一个方法 得到数据库的连接,并且我把AutoCommit设为false,
private Connection getCon() {
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, user, password);
con.setAutoCommit(false);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
然后我这里有个数据更新的操作
...
conn=getCon();
String updateSql = "update sys_admin set admin_password = ? where admin_id = ? and admin_password = ?";

        pstmt = conn.prepareStatement(updateSql);
        pstmt.setString(i++, newPwd);
        pstmt.setLong(i++, adminId);
        pstmt.setString(i++, oldPwd);
        if(pstmt.executeUpdate() == 1){
                             //执行到这里的时候数据已经在数据库里更新了,
            return MessageCode.SUCCESS;
        }
                      ....

请问我没有conn.commit()之前数据就已经更新了吗?;

  • 写回答

1条回答 默认 最新

  • xing23777 2011-03-14 17:43
    关注

    事务的commit之前,数据库内容尚未修改,修改的只是内存缓冲区中的数据

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大