注册 登录
编程论坛 JAVA论坛

请老师们帮我看看哪里出问题,在数据库添加数据,请问语句是否有问题,我按书本上的和网上的都不怎么行

张贤明 发布于 2018-03-10 19:28, 3609 次点击
import java.sql.*;
public class Conn {
    static Connection con;
    //static PreparedStatement sql;
    static ResultSet res;
    public Connection getConnetion(){
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            System.out.print("驱动加载成功");
        } catch (Exception e1) {
            e1.printStackTrace();
        }   
        try {
            con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=ADM","sa","sa");
            System.out.print("数据库连接成功");
        } catch (Exception e1) {
            e1.printStackTrace();
        }
         return con;
    }
    public static void main(String[] args) {
        Conn c=new Conn();
        c.getConnetion();
        try {
        String sql="insert into user(userID,password)values(51,65)";
            Statement stmt=con.createStatement();
            stmt.executeUpdate(sql);                 //报错指示在这行报错内容是:Incorrect syntax near the keyword 'user'
        System.out.print("添加成功");
        con.close();
        }catch (Exception e1) {
            e1.printStackTrace();
        }
        
    }
   
}
13 回复
#2
疯狂的小a2018-03-10 21:38
程序代码:
package com.xiaoa.demo;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import com.mysql.jdbc.Connection;

public class Conn {
    static Connection con;
    //static PreparedStatement sql;
    static ResultSet res;
    public Connection getConnetion(){
        try {
            //Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            Class.forName("com.mysql.jdbc.Driver");
            System.out.print("驱动加载成功");
        } catch (Exception e1) {
            e1.printStackTrace();
        }   
        try {
            //con=(Connection) DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=ADM","sa","sa");
            con=(Connection) DriverManager.getConnection("jdbc:sqlserver://localhost:1433/ADM","sa","sa");
            //con=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123"); //这还是连我的mysql数据库可以成功
            System.out.print("数据库连接成功");
        } catch (Exception e1) {
            e1.printStackTrace();
        }
         return con;
    }
    public static void main(String[] args) {
        Conn c=new Conn();
        c.getConnetion();
        try {
        String sql="insert into user(userID,password)values(51,65)";
        //String sql="insert into user(id,password)values(51,'65')";
            Statement stmt=con.createStatement();
            stmt.executeUpdate(sql);                 //报错指示在这行报错内容是:Incorrect syntax near the keyword 'user'//看看你的user表有没有
        System.out.print("添加成功");
        con.close();
        }catch (Exception e1) {
            e1.printStackTrace();
        }
        
    }
   
}
#3
疯狂的小a2018-03-10 21:39
回复 楼主 张贤明
Incorrect syntax near the keyword 'user'
这句是说你的语法错误.你看是不是格式哪里不对
#4
张贤明2018-03-10 22:26
回复 3楼 疯狂的小a
只有本站会员才能查看附件,请 登录
我的数据库是sql2005的,表也建了
只有本站会员才能查看附件,请 登录
语法我对了好久感觉没什么毛病
#5
疯狂的小a2018-03-10 22:36
回复 4楼 张贤明
你把我的代码试了么
#6
张贤明2018-03-10 23:02
用您的加载不上驱动,我库是SQL2005的,应该用你的还要去网上下载一个 .jar包是吗
#7
疯狂的小a2018-03-11 00:00
回复 6楼 张贤明
能把你的错误完整的贴出来吗。连数据库必须有相应的jar包
#8
张贤明2018-03-11 13:12
以下是引用张贤明在2018-3-10 19:28:52的发言:

import java.sql.*;
public class Conn {
    static Connection con;
    //static PreparedStatement sql;
    static ResultSet res;
    public Connection getConnetion(){
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            System.out.print("驱动加载成功");
        } catch (Exception e1) {
            e1.printStackTrace();
        }   
        try {
            con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=ADM","sa","sa");
            System.out.print("数据库连接成功");
        } catch (Exception e1) {
            e1.printStackTrace();
        }
         return con;
    }
    public static void main(String[] args) {
        Conn c=new Conn();
        c.getConnetion();
        try {
        String sql="insert into user(userID,password)values(51,65)";
            Statement stmt=con.createStatement();
            stmt.executeUpdate(sql);                 //报错指示在这行报错内容是:Incorrect syntax near the keyword 'user'
        System.out.print("添加成功");
        con.close();
        }catch (Exception e1) {
            e1.printStackTrace();
        }
        
    }
   
}

报错内容是
驱动加载成功数据库连接成功com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near the keyword 'user'.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(Unknown Source)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeUpdate(Unknown Source)
    at Conn.main(Conn.java:29)
#9
疯狂的小a2018-03-11 16:31
程序代码:
import java.sql.*;
public class Conn {
    static Connection con;
    //static PreparedStatement sql;
    static ResultSet res;
    public Connection getConnetion(){
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            System.out.print("驱动加载成功");
        } catch (Exception e1) {
            e1.printStackTrace();
        }   
        try {
            con=(Connection)DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=ADM","sa","sa");
            System.out.print("数据库连接成功");
        } catch (Exception e1) {
            e1.printStackTrace();
        }
         return con;
    }
    public static void main(String[] args) {
        Conn c=new Conn();
        c.getConnetion();
        try {
        String sql="insert into user(userID,password)values(51,65)";
            Statement stmt=con.createStatement();
            stmt.executeUpdate(sql);                 //报错指示在这行报错内容是:Incorrect syntax near the keyword 'user'
        System.out.print("添加成功");
        con.close();
        }catch (Exception e1) {
            e1.printStackTrace();
        }
        
    }
   
}
试试
#10
张贤明2018-03-11 17:07
回复 9楼 疯狂的小a
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
应该是我的驱动包有问题,今天下了好多个,还都是在这样,,
#11
疯狂的小a2018-03-11 20:14
String sql="insert into user(userID,password)values(51,65)";
改成
String sql="insert into user values(null,65)";
试试
#12
狂三学编程2018-03-12 10:54
emmm,是不是user是sqlserver的关键词,加个s试试,,猜的,勿喷
#13
rind2018-03-12 16:06
貌似驱动没问题,是SQL语句的问题。
#14
liuteng22018-03-12 17:52
你的userID,和password都是什么类型的?问题解决的吗
1