Java 使用 Jconnect

标签 java jconnect

美好的一天!

为了访问mysql服务器,我使用了JConnect,我的代码如下:

  public AddBooks() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/catalog";
            conn = DriverManager.getConnection(url,"root","upittc");
            stmt = conn.prepareStatement("INSERT INTO books VALUES(?,?,?,?,?,?,?,?,?,?,)");

        } catch (Exception exc) {
            JOptionPane.showMessageDialog(null, exc.getMessage());
        }
        initComponents();
    }

为了将数据放入数据库,我使用了以下代码:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
      try {
              stmt.setString(1, jTextField0.getText()); 
              stmt.setString(2, jTextField1.getText());
              stmt.setString(3, jTextField2.getText());
              stmt.setString(4, jTextField3.getText());
              stmt.setString(5, jTextField4.getText());
              stmt.setString(6, Jan2.getSelectedItem().toString());
              stmt.setString(7, Jan3.getSelectedItem().toString());
              stmt.setString(8, jTextField5.getText());
              stmt.setString(9, jTextField6.getText());
              stmt.setString(10, jTextField8.getText());
              stmt.executeUpdate();
              JOptionPane.showMessageDialog(null, "Save Successful!");

      } catch (Exception ex) {
              JOptionPane.showMessageDialog(null, ex);
      }
}

但是第 1 行有错误。列计数与行的值不匹配这是什么意思? 请指教。谢谢。

最佳答案

如果该字段是自动递增的,则不应为其分配任何内容,将其从 SQL 准备好的语句字符串中删除并仅设置其他所有内容,自动递增将自行完成工作。

PreparedStatement stmt = connect.prepareStatement("INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...) ");

去掉第一列:

PreparedStatement stmt = connect.prepareStatement("INSERT INTO table_name (column2, column3,...) VALUES ( value2, value3,...) ");

并将值替换为问号并按照稍后的操作进行设置。

          stmt.setString(1, jTextField1.getText());
          stmt.setString(2, jTextField2.getText());
          stmt.setString(3, jTextField3.getText());
          stmt.setString(4, jTextField4.getText());
          stmt.setString(5, Jan2.getSelectedItem().toString());
          stmt.setString(6, Jan3.getSelectedItem().toString());
          stmt.setString(7, jTextField5.getText());
          stmt.setString(8, jTextField6.getText());
          stmt.setString(9, jTextField8.getText());
          stmt.executeUpdate();

注意:递减索引(问号值的数量)。

希望有帮助!

关于Java 使用 Jconnect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5101353/

相关文章:

java - JConnect 错误代码列表是什么?

java - jconn4.jar 的 Maven 存储库是什么?

java - 无法通过 jconn4.jar/Sybase 驱动程序版本 7 和 Mybatis 框架更新 Sybase 数据库中的多条记录

java - 如何使用 JDBC 驱动程序和 SSL 连接连接到 Sybase ASE

java - 将 application.yml 文件转换为 application.properties

java - Intellij IDEA 找不到包类型

java - 通过代理从 java 发送电子邮件

java - AsyncEventHandler - 实时系统 Java

stored-procedures - Sybase IN 和 OUT 参数

java - Android - 在 R.id 中定义组