我有这个代码
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中没有显示任何插入。我尝试重新启动连接,但没有成功。自动提交是打开的,因为当我尝试手动提交时,它告诉我是这样的。
错误的模式名称
好吧,我发现了问题,所以我只留下答案,以后会觉得自己很愚蠢。
我以的身份启动了连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql?zeroDateTimeBehavior=CONVERT_TO_NULL", username, password);
什么时候应该是
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/project?zeroDateTimeBehavior=CONVERT_TO_NULL", username, password);
";项目";替换";mysql";是MySQL中我的模式的名称。