当前位置: 首页 > 知识库问答 >
问题:

Mysql Workbench未读取通过JDBC插入的记录

呼延俊风
2023-03-14

描述:工作台中的autocommit值已设置为0(零),然后我将一条记录插入到表中,并通过jdbc在Java App客户端中成功提交了事务。我在命令行中执行select查询,刚刚插入的记录已成功提取,但在workbech中执行相同的查询脚本,无法提取刚插入的记录。只有在工作台中执行提交命令后,才能查询记录。

如何重复:

  1. 在mysql工作台中设置autocommit=0
  2. 通过jdbc从javaapp向表中插入一条记录,并通过java提交事务
  3. 在workbech中执行select查询

建议修复:工作台应该读取提交的记录,而不是再次执行提交命令,以通过jdbc显示已经提交的记录。

下面是我的jdbc代码

    int recordInserted = 0;
    PreparedStatement prepStmt = null;
    try {

        conn = new DatabaseConnection().getSQLConnection();

        if (conn != null) {
            String sql = "INSERT INTO customerinfo (CustID, Customer_Name, Customer_License) VALUES (?, ?, ?)";

            prepStmt = conn.prepareStatement(sql);
            prepStmt.setString(1, registerRecords.getCustomerID());
            prepStmt.setString(2, registerRecords.getCustomerName());
            prepStmt.setString(3, registerRecords.getCustomerLic());

            recordInserted = prepStmt.executeUpdate();

        }
    } catch (Exception ex) {
        ex.printStackTrace();
    } finally {
        try {
             conn.close(); 
             prepStmt.close();
             conn = null;
             prepStmt=null;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 

    }

共有1个答案

温源
2023-03-14
  1. 在mysql工作台中设置autocommit=0

这意味着您必须从Java手动提交事务。

但你从来没有真正从Java提交。你应该这样做:

conn.commit();

完整代码:

java prettyprint-override">if (conn != null) {
    String sql = "INSERT INTO customerinfo (CustID, Customer_Name, Customer_License) VALUES (?, ?, ?)";

    prepStmt = conn.prepareStatement(sql);
    prepStmt.setString(1, registerRecords.getCustomerID());
    prepStmt.setString(2, registerRecords.getCustomerName());
    prepStmt.setString(3, registerRecords.getCustomerLic());
    recordInserted = prepStmt.executeUpdate();

    conn.commit();
}
 类似资料:
  • 我使用Liquibase insert将两行添加到数据库中,并通过外键链接它们,如下所示: 除了表2中外键的值外,两条记录都正确插入。此值保持为空。因此,“computeValue”属性似乎没有正确执行,但我不明白为什么。我希望在Liquibase中有一个解决方案,而不是在普通SQL中,因为Liquibase提供了一种可能性,可以方便地插入clob字段。 表1:ID- 55228390499230

  • 这是我的第一个项目,也是我的第一个岗位。我正在创建一个在朋友之间使用的博彩网站,但我遇到了这个错误:无法读取未定义的属性“Push” 我想让它再次发挥作用是件小事吧? 有什么建议吗? 数据库模式

  • 问题内容: 我创建了一个JDBC附加程序,并绑定了ColumnConfig和DataSourceConnectionSource。 尝试在数据库中插入记录时(Logger.debug(“ Test”))。我遇到了以下异常。 谢谢 问题答案: 抱歉,我之前的回答不正确。可以通过配置修改此行为。默认情况下,所有列(除非除外)都被视为unicode字符串,并且该值是通过方法插入的。如果您使用配置列,则将

  • 我正在学习Sedgwick(普林斯顿大学)的算法1课程,试图从标准输入中读取一个整数,它表示将要输入的整数对的数量,然后从标准输入中读取一个整数对的列表。 例如: 视频中给出的代码是这样的: 问题: > 中的代码是stdin.readint()实际的java还是伪代码?

  • 我尝试使用getch()和kbsit()读取用户的输入,但它似乎无法识别按键被按下。 此代码打印“开始”,按下键时不打印任何内容。使用getch()读取和打印哪怕一个字符,而不使用循环,我都不走运。

  • 我有两个表1)krs_question_bank 2)krs_options 而我正在调用Session.Save(问题)。生成了Hibernate查询,但..我有以下错误。有什么办法可以解决这个错误吗?