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下看不到?怎么办?

无法在 mysql Workbench 中添加外键用户表

在 MySQL Workbench 中调用 Python 模块函数时出错

将 CSV 文件加载到 MySQL Workbench

如何重置 MySQL Workbench 根密码 - Mac