Java SQL,尝试比较2 int并得到错误“;无法比较char和int“;

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

我得到了这个错误:

“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'从
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;