gpt4 book ai didi

java - SQL查询语法错误

转载 作者:行者123 更新时间:2023-11-29 08:34:15 24 4
gpt4 key购买 nike

        Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/exam","root","password");
String q="insert into group"
+"(gname,des)"
+"values(?,?)";

PreparedStatement p=con.prepareStatement(q);
p.setString(1,gname);
p.setString(2,des);
p.executeUpdate();
con.close();

这是我添加群组的代码。但是错误说我的查询语法是错误的。我已经在我的表中尝试了带有字段的单核,但仍然出现该错误。首先,我使用的 create 语句也给出了同样的错误。请告诉我们这个查询有什么问题?

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'group(gname,des)values('Science','')' at line 1
sun.reflect.GeneratedConstructorAccessor16.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:423)
com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
com.mysql.jdbc.Util.getInstance(Util.java:408)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:943)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2490)
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2079)
com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2013)
com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5104)
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1998)
org.apache.jsp.groupreg_jsp._jspService(groupreg_j

最佳答案

在去除代码中的换行符后,您的查询是这样的:

insert into group(gname,des)values(?,?)

换句话说,您正试图插入一个名为group 的表。这是不允许的,因为 GROUP 是 MySQL 中的保留字。

来自 the manual :

Most of the reserved words in the table are forbidden by standard SQL as column or table names (for example, GROUP).

您需要选择一个不同的表名(推荐)或用反引号将单词 group 括起来,如下所示:

INSERT INTO `group` (gname, des) VALUES (?, ?)

请参阅 Schema Object Names 上的手册条目.

此外,请确保您有适当的空间;在许多情况下,您现在缺少间距会导致其他问题。

关于java - SQL查询语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45528769/

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