Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用两个类似的';它的名字不同?_Java_Mysql_Swing - Fatal编程技术网

Java 使用两个类似的';它的名字不同?

Java 使用两个类似的';它的名字不同?,java,mysql,swing,Java,Mysql,Swing,我试图在我的程序中的JTable中创建一个搜索函数,但是当我使用这种语法时,我得到了sql语法错误。我已经读了很多关于这个问题的问答,但我从来没有得到正确的语法。希望你能帮助我 private void fillTable(String keyword) throws SQLException{ if (!keyword.equals("")){ try( Connection con = DriverManager.getConnection

我试图在我的程序中的JTable中创建一个搜索函数,但是当我使用这种语法时,我得到了sql语法错误。我已经读了很多关于这个问题的问答,但我从来没有得到正确的语法。希望你能帮助我

private void fillTable(String keyword) throws SQLException{
    if (!keyword.equals("")){
        try( Connection con = DriverManager.getConnection
                            ("jdbc:mysql://localhost:3306/inventory?zero"
                                    + "DateTimeBehavior=convertToNull","root","");
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM basis"
                    + "WHERE barcode LIKE '%"+keyword+"%' or "
                    + "namaProduk LIKE '% "+keyword+" %'");               
        ){
            jTable1.setModel(buildTableModel(rs));
        }  
    }
    else fillTable();
}

basis
WHERE
之间缺少1个空格(语法错误的原因)

%
和关键字之间有1个不需要的空格(使查询不相关)


basis
WHERE
之间缺少1个空格(语法错误的原因)

%
和关键字之间有1个不需要的空格(使查询不相关)


我在这里看到的是,表名“basis”后面缺少一个空格。通常,您应该通过现有的DB客户机手动测试SQL语句,然后将它们复制到代码中


如果您愿意使用可以减轻痛苦的工具,请尝试。

我在这里看到的是,表名“basis”后面缺少一个空格。通常,您应该通过现有的DB客户机手动测试SQL语句,然后将它们复制到代码中

如果你愿意使用能减轻痛苦的工具,试试看

private void fillTable(String keyword) throws SQLException{
    if (!keyword.equals("")){
        try( Connection con = DriverManager.getConnection
                            ("jdbc:mysql://localhost:3306/inventory?zero"
                                    + "DateTimeBehavior=convertToNull","root","");
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM basis "
                    + "WHERE barcode LIKE '%"+keyword+"%' or "
                    + "namaProduk LIKE '%"+keyword+" %'");               
        ){
            jTable1.setModel(buildTableModel(rs));
        }  
    }
    else fillTable();
}