gpt4 book ai didi

java - 使用语句时出现 MySQL 1064 语法错误

转载 作者:行者123 更新时间:2023-11-29 05:55:45 24 4
gpt4 key购买 nike

我正在运行一个服务器,它接收查询并使用语句将它们发送到数据库。

try{
connection = dbConnection.getDbConnection();
if(connection != null) {
System.out.println("DA2");

Statement mySt = connection.createStatement();
if(mySt != null) {
ResultSet myRs = mySt.executeQuery(query);
System.out.println("DA3");

while(myRs.next()){
//getting data and printing it
}
}

}

它打印 DA2,因此连接已成功创建。查询由客户端通过以下方式发送

DataOutputStream out = new DataOutputStream(client.getOutputStream());
String query = "USE db_name; SELECT * FROM `tb_name`;";
out.writeUTF(query);

我用 db_name 更改了数据库名称,用 tb_name 更改了表名称(我确信我在代码中正确地写了它们)。

服务器以这种方式接收它们

Socket client = socket.accept();
DataInputStream input = new DataInputStream(client.getInputStream());
String query = input.readUTF();

当服务器正在运行并且客户端发送查询时,将抛出异常并显示以下消息(我处理了异常以向我展示这一点)。

SQLState: 42000 Error Code: 1064 Message: 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 'SELECT * FROM `tb_name`' at line 1

相同的查询在 MySQL 数据库上正确运行。

我该如何解决这个问题?数据库是发回错误并因此抛出异常还是只是代码?

已解决:我忘记在连接中指定数据库名称。

最佳答案

您可以使用(具有限定名称的单个 SQL 语句):

String query = "SELECT * FROM db_name.`tb_name`";

关于java - 使用语句时出现 MySQL 1064 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49587535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com