注册 登录
编程论坛 JAVA论坛

mysql插入数据出错

列车永不停息 发布于 2015-12-22 17:12, 2373 次点击
程序代码:

import java.sql.DriverManager;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class 数据库{
   
     private static String user = "root";
     private static String password = "1230";
     private static String driverClass = "com.mysql.jdbc.Driver";
     private static String url = "jdbc:mysql:///x";
     
     public static void main(String[] args) throws SQLException, Exception {
        
         wo();
         
    }

    private static void wo() throws SQLException, Exception {
        // TODO 自动生成的方法存根
         Connection con = (Connection) DriverManager.getConnection(url,user,password);
         Statement sql = (Statement) con.createStatement();//实例化对象
//         
         String s = "NSERT INTO x2(id,PASSWORD) VALUES('liuyuyu',5)";
         Class.forName(driverClass);//加载驱动的;
        
         System.out.println(con);
         sql.executeUpdate(s);
        
         con.close();
    }
   
   
}


报错

com.mysql.jdbc.JDBC4Connection@6193b845
Exception in thread "main" 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 'NSERT INTO x2(id,PASSWORD) VALUES('liuyuyu',5)' at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.Util.getInstance(Util.java:381)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1605)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1524)
    at 数据库.数据库.wo(数据库.java:31)
    at 数据库.数据库.main(数据库.java:18)
3 回复
#2
紫月一殇雪2015-12-22 19:31
你这个顺序就有问题,
难道不是应该先获得驱动
Class.forName(driverClass);

然后得到DriverManager,
使用DriverManager的getConnection()方法得到连接源con;
然后才是你下面的代码
程序代码:
      
con.open();    //打开连接
  Statement sql = (Statement) con.createStatement();//实例化对象
//         
         String s = "NSERT INTO x2(id,PASSWORD) VALUES('liuyuyu',5)";
        // Class.forName(driverClass);//加载驱动的;   这段代码上移
        
         System.out.println(con);
         sql.executeUpdate(s);
        
         con.close();
    }
   



不过你的这些代码与数据库交互,记得加try-catch块去捕获异常。

[此贴子已经被作者于2015-12-22 19:32编辑过]

#3
列车永不停息2015-12-22 21:14
回复 2楼 紫月一殇雪
没有用呀?我移到Statement之前没用,移到Connection也没有用呀
#4
youfgd3332015-12-25 00:14
String s = "NSERT INTO x2(id,PASSWORD) VALUES('liuyuyu',5)";

String s = "INSERT INTO x2 (id,password) VALUES ('liuyuyu',5)";

是INSERT吧
1