我试图通过单击按钮将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());
}
}
任何帮助将不胜感激
答案 0 :(得分:0)
在代码的这一部分:
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
答案 1 :(得分:0)
尝试使用SQL时,请使用PreparedStatement
。该代码更易于阅读,并且不易出错。
一个入门的基本示例:
String sql = "INSERT INTO Page (Name, Title) VALUES (?, ?)";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString( 1, nameValue );
stmt.setString( 2, titleValue );
stmt.executeUpdate();
希望您可以轻松地告诉新消息