【发布时间】:2021-07-02 10:20:56
【问题描述】:
我有这个代码
public PreparedStatement InsertDepartmentQuery() {
try {
ps = conn.prepareStatement("INSERT INTO department (DepartmentNo,DepartmentName,DepartmentLocation) VALUES (?,?,?)");
}
catch(SQLException e) {
e.printStackTrace();
}
return ps;
}
和
public void InsertyTuple() {
int a = -1;
ps = InsertDepartmentQuery();
try {
ps.setInt(1, DeptNo);
ps.setString(2, DeptName);
ps.setString(3, DeptLocation);
a = ps.executeUpdate();
}
catch(SQLException e) {
e.printStackTrace();
}
System.out.println(a);
}
和
Department test = new Department(106, "TB_1", "Tabuk");
test.InsertyTuple();
它在 Eclipse 中执行得很好,即使是其中的选择查询也会返回预期的结果。但是没有任何插入出现在 MySQL Workbench 中。我尝试重新启动连接,但它没有工作。当我尝试手动提交时,自动提交已开启。
【问题讨论】:
-
您确定在这两种情况下查看的是同一个数据库吗?
-
你使用自动提交还是事务在哪里提交?
-
@RiggsFolly 是的,我什至从 MySQL 中删除了其他模式和数据库,看看这是否是问题所在。
-
@SimonMartinelli 自动提交默认开启。我什至尝试进行提交只是为了查看并遇到“java.sql.SQLException:当autocommit = true时无法调用提交”
标签: java mysql sql jdbc mysql-workbench