错误:
Exception in thread "main" java.sql.SQLException: Can't call commit when autocommit=true
所有错误信息:
Exception in thread "main" java.sql.SQLException: Can't call commit when autocommit=true
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:869)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:865)
at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1547)
at com.cxq.lesson01.jdbcDemo01.main(jdbcDemo01.java:34)
commit() 使自从上一次提交/回滚以来进行的所有更改成为持久更改,并释放此Connection对象当前保存的所有数据库锁定。此方法应该只在已禁用自动提交模式时使用。
rollback()取消在当前事务中进行的所有更改,并释放此Connection对象当前保存的所有数据库锁定。此方法应该只在已禁用自动提交模式时使用。
如果发生数据库访问错误或者此 Connection 对象处于自动提交模式下 ,那么这两个方法将会抛出异常。
解决方法如下
conn = getConnection();
conn.setAutoCommit(false);//在conn = getConnection();后面添加这么一句即可。
在代码中增加:
/*3:连接成功:数据库对象 Connection代表数据库*/
Connection connection = DriverManager.getConnection(url, username, password);
connection.setAutoCommit(false);
执行正确结果: