Я получаю эту ошибку:SQL, пытаясь сравнить 2 ИНТ и получаю ошибку «Не удается сравнить полукокса и ИНТ»
"java.sql.SQLSyntaxErrorException: No están soportadas las comparaciones entre 'INTEGER' y 'CHAR (UCS_BASIC)'. Los tipos deben ser comparables. Además, los tipos de cadena también deben tener una intercalación coincidente. Si la intercalación no coincide, una posible solución es convertir los operandos para forzarlos a la intercalación por defecto (por ejemplo: SELECT tablename FROM sys.systables WHERE CAST(tablename AS VARCHAR(128)) = 'T1')"
Моя таблица базы данных имеет 11 позиций, все это VARCHAR, но первый один, это int.
И iI 'получение данных из jtable
, все, кроме col 0, которое является int, rest - это строки.
И вот мой код:
int colActual = jTableNombre.getSelectedRow();
private void jButtonGuardarNombreActionPerformed(java.awt.event.ActionEvent evt) {
String nombre = (String) jTableNombre.getModel().getValueAt(colActual,1);
String director=(String) jTableNombre.getModel().getValueAt(colActual,2);
String año = (String) jTableNombre.getModel().getValueAt(colActual,3);
String generos = (String) jTableNombre.getModel().getValueAt(colActual,4);
String actores = (String) jTableNombre.getModel().getValueAt(colActual,5);
String pais = (String) jTableNombre.getModel().getValueAt(colActual,6);
String idioma = (String) jTableNombre.getModel().getValueAt(colActual,7);
String doblaje = (String) jTableNombre.getModel().getValueAt(colActual,8);
String subtitulos = (String) jTableNombre.getModel().getValueAt(colActual,9);
String ubicacion = (String) jTableNombre.getModel().getValueAt(colActual,10);
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
String sql= "UPDATE MOVIES " +
"SET NOMBRE = '"+nombre+"', "+
"DIRECTOR = '"+director+"', "+
"AÑO = '"+año+"', "+
"GENEROS = '"+generos+"', "+
"ACTORES = '"+actores+"', "+
"PAIS = '"+pais+"', "+
"IDIOMA = '"+idioma+"', "+
"DOBLAJE = '"+doblaje+"', "+
"SUBTITULOS = '"+subtitulos+"', "+
"UBICACION = '"+ubicacion+"' "+
"WHERE ID = '"+id+"'";
stmt.executeUpdate(sql);
int i= stmt.executeUpdate(sql);
System.out.print(i);
if (i>0) {
JOptionPane.showMessageDialog(null, "Movie Updated");
}
else {
JOptionPane.showMessageDialog(null, "Movie dindt update");
}
}
catch(Exception e) {
System.out.println(e);
}
}
Вы пытаетесь установить идентификатор, который должен быть int как символ, поскольку сообщение об ошибке сообщает вам – Theyna
Обязательные [Bobby Tables] (http://bobby-tables.com/) link ... – Amadan
Спасибо за Отвечая @ Theyna, вы можете объяснить немного дальше? im new для java/jdbc и im обучения самостоятельно. Благодарю. –