gpt4 book ai didi

Java netbean调用数据库错误(com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException)

转载 作者:行者123 更新时间:2023-11-29 09:27:45 25 4
gpt4 key购买 nike

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'character' at line 1

我对这个错误感到非常困惑。基本上我的每个带有数据库的项目都有这个基本代码,但不知何故它已经死了。

public ArrayList<Character> display()
{
ArrayList<Character> collection = new ArrayList<>();
try
{
stat = (Statement) connect.createStatement();

result = stat.executeQuery("SELECT * FROM character");

while(result.next())
{
Character a = new Character(
result.getString("user"),
result.getInt("win"),
result.getInt("lose"),
result.getInt("draw")
);
collection.add(a);
}
}
catch(Exception e)
{
System.out.println(e);
}
return collection;
}
        chara = new Character();

for(int i = 0; i< chara.display().size();i++)
{
System.out.println("asd");
String message = chara.display().get(i).getUser();
System.out.println(message);
}

最佳答案

在 MariaDB 中,CHARACTER is a reserved keyword因此您不能在查询中使用它。您需要将其放在反斜线 (`) 之间

/* ... */
stat = (Statement) connect.createStatement();

result = stat.executeQuery("SELECT * FROM `character`;");

while(result.next())
{
Character a = new Character(
result.getString("user"),
result.getInt("win"),
result.getInt("lose"),
result.getInt("draw")
);
collection.add(a);
}
/* ... */

关于Java netbean调用数据库错误(com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59286715/

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