java—通过单击按钮将选定的jtable行插入数据库

z2acfund  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(217)

我试图通过单击按钮将jtable中的数据插入数据库。我得到一个异常,说明列计数与第1行的值计数不匹配

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:
    try{
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/sms", "root", "");

        String query="insert into attendance(regNo,name,sClass,attendance,date) values('"+regNo+"','"+names+"','"+sClass+"','"+attendance+"')";
        Statement st=connection.createStatement();

        int row=jTable_Display_Student.getSelectedRow();
        String regNo=(jTable_Display_Student.getValueAt(row, 0).toString());
        String names=(jTable_Display_Student.getValueAt(row, 1).toString());
        String sClass=(jTable_Display_Student.getValueAt(row, 2).toString());
        String attendance=(jTable_Display_Student.getValueAt(row, 3).toString());

        st.executeUpdate(query);

       JOptionPane.showMessageDialog(null, "Selected Rows Submitted Successfully.");
    }
    catch(Exception e){
        JOptionPane.showMessageDialog(null,e.getMessage());
    }
}

任何协助都将不胜感激

w41d8nur

w41d8nur1#

在这部分代码中:

String query="insert into attendance(regNo,name,sClass,attendance,date) values('"+regNo+"','"+names+"','"+sClass+"','"+attendance+"')";

你有5列

(regNo,name,sClass,attendance,date)

只有4个值来填充它们

values('"+regNo+"','"+names+"','"+sClass+"','"+attendance+"')

所以你需要加上 date 你失踪了

5lhxktic

5lhxktic2#

使用 PreparedStatement 尝试使用sql时。代码更易于阅读,不易出错。
让您开始学习的一个基本示例:

String sql = "INSERT INTO Page (Name, Title) VALUES (?, ?)";
PreparedStatement stmt = connection.prepareStatement(sql);

stmt.setString( 1, nameValue );
stmt.setString( 2, titleValue );
stmt.executeUpdate();

希望你能很容易地知道:
要更新的列数,以及需要传递给sql语句的值数
您不必担心这些值的所有分隔符。

相关问题