MySQL Workbench 没有“看到”来自 JDBC Java 程序的更新
Posted
技术标签:
【中文标题】MySQL Workbench 没有“看到”来自 JDBC Java 程序的更新【英文标题】:MySQL Workbench doesn't "see" updates from JDBC Java program 【发布时间】: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时无法调用提交” 【参考方案1】:架构名称错误
好吧,我发现了问题,所以我会留下答案,以后会觉得很愚蠢。
我的连接开始为
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”的“project”是我在 MySQL 中的架构名称。
【讨论】:
以上是关于MySQL Workbench 没有“看到”来自 JDBC Java 程序的更新的主要内容,如果未能解决你的问题,请参考以下文章
在 MySQL Workbench 中查看来自 AWS 的数据库表
mysql 的默认数据库mysql为啥在 workbench下看不到?怎么办?