给我 MySql 语法错误? [关闭]
Posted
技术标签:
【中文标题】给我 MySql 语法错误? [关闭]【英文标题】:giving me MySql Syntax error? [closed] 【发布时间】:2014-06-18 21:41:15 【问题描述】:我是 JDBC 的初学者,我正在尝试将一条记录插入到我创建 raja
的表中:
这是我的程序:
import java.sql.*;
public class raj
public static void main(String[] args)
try
Connection con=DriverManager.getConnection(
"jdbc:mysql://localhost:9999/raj1", "root", "1234"
);
Statement stmt=con.createStatement();
String sql="insert into raja"+
"values(1, 'Rajendra Arora', 22)";
stmt.executeUpdate(sql);
sql="insert into raja"+
"values(2, 'Reena arora', 40)";
stmt.executeUpdate(sql);
sql="insert into raja"+
"values(3, 'Manohar lal arora', 45)";
stmt.executeUpdate(sql);
sql="insert into raja"+
"values(4, 'Suman and sudha arora', 20)";
stmt.executeUpdate(sql);
System.out.println("table records inserted succesfully....");
catch(Exception e)e.printStackTrace();
但在执行过程中显示错误如下:
"C:\Program Files\Java\jdk1.8.0\bin\java" -Didea.launcher.port=7539 "-Didea.launcher.bin.path=C:\Program Files\JetBrains\IntelliJ IDEA 13.1.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\access-bridge.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\zipfs.jar;C:\Users\Raj Arora\IdeaProjects\untitled\out\production\untitled;C:\Users\Raj Arora\.IntelliJIdea13\config\jdbc-drivers\mysql-connector-java-5.1.29-bin.jar;C:\Program Files\JetBrains\IntelliJ IDEA 13.1.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain raj
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 '1, 'Rajendra Arora', 22)' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4237)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4169)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2617)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2778)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2828)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1842)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1764)
at raj.main(raj.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Process finished with exit code 0
【问题讨论】:
执行前打印查询避免错误 是的,这使得开发者的身份...... :) 哈哈...... 反对者没有告诉你的是,你忘记在你的表名和values
关键字之间添加一个 space
。第一次失败,但你每次都这样做。
【参考方案1】:
永远不要忘记空格:
String sql="insert into raja(col1,col2,col3) "+
"values(1, 'Rajendra Arora', 22)";
【讨论】:
并且他/她也应该指定ciolum名称。【参考方案2】:查看您的 SQL 请求! :
sql="insert into raja"+" values(3, 'Manohar lal arora', 45)";
加个空格!
【讨论】:
【参考方案3】:我认为您需要在“raja”和“values”之间添加一个“空白”。
此外,调试这些问题的最佳方法是在控制台中打印最终的 sql 并在任何数据库编辑器中使用它。
【讨论】:
【参考方案4】:在你的问题中你提到了你的 sql
String sql="insert into raja"+
"values(1, 'Rajendra Arora', 22)";
但在
raja"+ "values
是制作rajavalues。
它必须是raja值
那就这样吧
String sql="insert into raja "+
"values(1, 'Rajendra Arora', 22)";
【讨论】:
以上是关于给我 MySql 语法错误? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章