【问题标题】:MySQL Workbench doesn't "see" updates from JDBC Java programMySQL Workbench 没有“看到”来自 JDBC Java 程序的更新
【发布时间】: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


【解决方案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 中的架构名称。

【讨论】:

    猜你喜欢
    • 2012-11-16
    • 2014-11-30
    • 2020-04-12
    • 2017-03-15
    • 2016-12-14
    • 2015-05-15
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多