我遇到了一个应该修改数据库数据的按钮的问题。
这是我得到的错误:
"Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 11 >= 11"
我会在这里链接按钮的代码和一些额外的东西,以防有人问......
我已经检查过,是的,数据库列的一切都没问题。
此外,jTable有11列。
colActual = jTableNombre.getSelectedRow();
private void jButtonGuardarNombreActionPerformed(java.awt.event.ActionEvent evt) {
Connection conn = null;
Statement stmt = null;
String nombre = (String) jTableNombre.getModel().getValueAt(colActual,2);
String director=(String) jTableNombre.getModel().getValueAt(colActual,3);
String año = (String) jTableNombre.getModel().getValueAt(colActual,4);
String generos = (String) jTableNombre.getModel().getValueAt(colActual,5);
String actores = (String) jTableNombre.getModel().getValueAt(colActual,6);
String pais = (String) jTableNombre.getModel().getValueAt(colActual,7);
String idioma = (String) jTableNombre.getModel().getValueAt(colActual,8);
String doblaje = (String) jTableNombre.getModel().getValueAt(colActual,9);
String subtitulos = (String) jTableNombre.getModel().getValueAt(colActual,10);
String ubicacion = (String) jTableNombre.getModel().getValueAt(colActual,11);
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
String sql= "UPDATE MOVIES" +
"SET NOMBRE = '"+nombre+"'"+
"SET DIRECTOR = '"+director+"'"+
"SET AÑO = '"+año+"'"+
"SET GENEROS = '"+generos+"'"+
"SET ACTORES = '"+actores+"'"+
"SET PAIS = '"+pais+"'"+
"SET IDIOMA = '"+idioma+"'"+
"SET DOBLAJE = '"+doblaje+"'"+
"SET SUBTITULOS = '"+subtitulos+"'"+
"SET UBICACION = '"+ubicacion+"'"+
" WHERE ID = '"+id+"'";
stmt.executeUpdate(sql);
}
catch(Exception e) {
System.out.println(e);
}
}
答案 0 :(得分:2)
如果表只有11列,则11不是有效索引。索引从0开始,因此表的有效列索引将为0到10。
另请注意,TableModel.getValueAt
的参数为(rowIndex, columnIndex)
。你的名为colActual
的变量真的在做你打算做的事吗?
jTableNombre.getModel().getValueAt(colActual,2)