Mysql Workbench不读取通过JDBC

时间:2016-11-02 07:27:38

标签: mysql database jdbc mysql-workbench

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

如何重复:

  1. 在mysql workbench中设置autocommit = 0.
  2. 通过jdbc从java app向表中插入记录,并通过java提交事务。
  3. 在workbech中执行select query。
  4. 建议修复: 工作台应该读取已提交的记录,而不是再次执行commit命令以通过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 个答案:

答案 0 :(得分:3)

  
      
  1. 在mysql workbench中设置autocommit = 0
  2.   

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

  
      
  1. 通过jdbc从java app向表中插入记录,并通过java提交事务。
  2.   

但你实际上从未实际使用Java。你应该这样做:

<pre>
 array (size=4)
 0 => 
 array (size=3)
  0 => string 'white' (length=5)
  1 => string 'new' (length=3)
  2 => string '200' (length=3)
 1 => 
 array (size=3)
  0 => string 'red' (length=3)
  1 => string 'new' (length=3)
  2 => string '200' (length=3)
 2 => 
 array (size=3)
  0 => string 'white' (length=5)
  1 => string 'new' (length=3)
  2 => string '250' (length=3)
 3 => 
 array (size=3)
  0 => string 'red' (length=3)
  1 => string 'new' (length=3)
  2 => string '250' (length=3)
</pre>

完整代码:

conn.commit();