给我 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 语法错误? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

错误 1604 - 错误的语法 MySQL [关闭]

创建函数时出现“MySQL语法错误”[关闭]

MYSQL 语法错误?请帮助我得到错误声明[关闭]

LIMIT 子句导致 mysql 查询的语法错误[关闭]

WHERE选择上的MySQL语法错误[关闭]

'的语法错误?