Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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
在Debian上使用Java连接到MySQL_Java_Mysql_Debian - Fatal编程技术网

在Debian上使用Java连接到MySQL

在Debian上使用Java连接到MySQL,java,mysql,debian,Java,Mysql,Debian,我正在尝试使用Java连接MySQL数据库,但出现以下错误: SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '????????????????' at line 1 我无法理解这个错误,在网上搜索了很多,但没有找到任何东西。这是我正在使用的代码:

我正在尝试使用Java连接MySQL数据库,但出现以下错误:

SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '????????????????' at line 1
我无法理解这个错误,在网上搜索了很多,但没有找到任何东西。这是我正在使用的代码:

    try
    {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
    }
    catch (Exception E)
    {
        System.err.println("Unable to load driver");
        E.printStackTrace();
    }

    try
    {
        Connection C = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/DATABASE_NAME","USERNAME","PASSWORD");
        Statement Stmt = C.createStatement();

        ResultSet RS = Stmt.executeQuery("SELECT somefield FROM sometable");

        while (RS.next())
        {
             System.out.print("\"" + RS.getString(1) + "\"");
             System.out.print(" by " + RS.getString(2));
             System.out.println(": " + RS.getString(3));
        }
        C.close();
        RS.close();
        Stmt.close();
    }
    catch (SQLException E)
    {
        System.out.println("SQLException: " + E.getMessage());
        System.out.println("SQLState:     " + E.getSQLState());
        System.out.println("VendorError:  " + E.getErrorCode());
    }
上面的SQL查询就是这个问题的一个例子。我正在使用的MySQL控制台工作没有任何问题。事实上,即使我从上面的代码中删除了查询和语句,我仍然会得到相同的错误。 有人能帮忙吗?
提前感谢

很可能是因为您正在使用 从表中选择字段-表是SQL保留字。如果要执行此查询,可能需要执行以下操作

select field from `table` 

将单词表放在后面

很可能是因为您正在使用 从表中选择字段-表是SQL保留字。如果要执行此查询,可能需要执行以下操作

select field from `table` 

将单词表放在后面

从哪一行抛出异常(在catch中,添加E.printStackTrace())?另外,请尝试在查询结束时抛出分号,例如“select field from table”;您好,谢谢您的评论,我也尝试了添加分号,但错误中没有区别抛出异常的行是什么(在您的catch中,添加e.printStackTrace())?此外,请尝试在查询的末尾使用分号,例如“select field from table”;您好,谢谢您的评论,我也尝试添加了分号,但错误没有区别对不起,我应该在之前澄清一下。上面的SQL查询是关于这个问题的一个通用示例,而不是我实际使用的示例。我使用的查询是正确的。至少当我直接在MySQL控制台中执行它时,它工作正常。事实上,即使我从Java代码中删除了查询和语句,我仍然会得到相同的错误。当Java客户端以不同于服务器预期的字符集发送请求时,我偶尔会看到这种情况,例如,服务器需要EUC-JP字符,而您发送的是US-ASCII。。。这也将与您在错误消息中发布的“??”相匹配。最后,这起作用了!这确实是一个编码问题。我刚刚使用了编码集“latin1”,这让我很开心。非常感谢@Dataknife,我真的不认为编码会有问题。很抱歉误解了,我应该在之前澄清一下。上面的SQL查询是关于这个问题的一个通用示例,而不是我实际使用的示例。我使用的查询是正确的。至少当我直接在MySQL控制台中执行它时,它工作正常。事实上,即使我从Java代码中删除了查询和语句,我仍然会得到相同的错误。当Java客户端以不同于服务器预期的字符集发送请求时,我偶尔会看到这种情况,例如,服务器需要EUC-JP字符,而您发送的是US-ASCII。。。这也将与您在错误消息中发布的“??”相匹配。最后,这起作用了!这确实是一个编码问题。我刚刚使用了编码集“latin1”,这让我很开心。多亏了@Dataknife,我真的没想到编码会成为一个问题。