Java SQL,尝试比较2 int并得到错误“;无法比较char和int“;
我得到了这个错误: “java.sql.SQLSyntaxErrorException:没有están soportadas las “整数”和“字符(UCS_基本)”的比较。Los tipos deben 可比性。阿德马斯,卡德纳塔姆比恩德本酒店 “不一致的,不一致的,不一致的” 可解的可转换操作数 intercalación por defecto(por ejempo:SELECT tablename FROM sys.systables WHERE CAST(表名为VARCHAR(128))='T1')” 我的数据库表有11个位置,所有内容都是varchar,但第一个是int iI'从Java SQL,尝试比较2 int并得到错误“;无法比较char和int“;,java,sql,jdbc,jtable,Java,Sql,Jdbc,Jtable,我得到了这个错误: “java.sql.SQLSyntaxErrorException:没有están soportadas las “整数”和“字符(UCS_基本)”的比较。Los tipos deben 可比性。阿德马斯,卡德纳塔姆比恩德本酒店 “不一致的,不一致的,不一致的” 可解的可转换操作数 intercalación por defecto(por ejempo:SELECT tablename FROM sys.systables WHERE CAST(表名为VARCHAR(128
jtable
获取数据,除了col 0之外的所有内容,其中的col是int,rest是strings
这是我的代码:
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);
}
}
此代码片段中缺少
id
:
"WHERE ID = '"+id+"'";
尝试添加它。尝试更改这行代码:
"WHERE ID = '"+id+"'";
致:
应该有用
欢迎来到Java,我还建议你看看jdbc文档:我还建议你,如果你遇到了SQLXXX错误,一定要进行调试,打印SQL命令并在任何SQL客户机上执行它,这可能有助于发现语法错误
C是。您正在尝试将id设置为int作为字符,因为错误消息告诉您必须链接…感谢您回答@Theyna,您可以进一步解释一下吗?我是java/jdbc新手,我自己学习。谢谢。好好想想你的WHERE ID条款。。。id不应该是“id”@谢谢!!愚蠢的我,丁特意识到我周围有个!谢谢我意识到我把id设为字符,愚蠢的错误。。。还是非常感谢你的帮助!
"WHERE ID = "+id;