我正在使用MySQL数据库。
我有这样的代码:
public class Test {
public static void main(String[] args) throws SQLException {
String url = "....";
String username = "...";
String password = "...";
DriverManager.registerDriver(new Driver());
Connection connection = DriverManager.getConnection(url, username, password);
connection.setAutoCommit(false);
Statement stmt = connection.createStatement();
stmt.execute("create table if not exists customer1\r\n" + "(\r\n"
+ "customer_name varchar(20) not null primary key,\r\n" + "customer_street varchar(20),\r\n"
+ "customer_city varchar(10)\r\n" + ")");
// connection.commit();
connection.close();
}
}
问题:执行此操作时,它会创建表并自动提交,但不应该提交。
我做了connection.setAutoCommit(false)
并注释了connection.commit()
进行测试,然后为什么要提交?
注意: 在我的系统上的MySQL中启用了自动提交。
问题: 我是否需要在mysql中禁用自动提交功能或在代码中缺少的功能?
此问题(jdbc autocommit(false) doesnt work)没有帮助。
MySQL DDL,即创建表不是事务性的>>
问题:执行此命令时,它将创建表并提交自动,但不应该。
数据操作语句是事务性的,而不是数据定义语句。