Java JDBC插入错误
我正试图用jdbc将一些数据插入我的数据库。我使用的是正确的表、数据库名称和参数。一切都检查过了 代码Java JDBC插入错误,java,mysql,sql,jdbc,insert,Java,Mysql,Sql,Jdbc,Insert,我正试图用jdbc将一些数据插入我的数据库。我使用的是正确的表、数据库名称和参数。一切都检查过了 代码 public static void main(String[] args) throws IOException/*, ClassNotFoundException, SQLException*/ { DataInputStream d = new DataInputStream(System.in); System.out.println("Enter employee I
public static void main(String[] args) throws IOException/*, ClassNotFoundException, SQLException*/ {
DataInputStream d = new DataInputStream(System.in);
System.out.println("Enter employee ID : ");
@SuppressWarnings("deprecation")
int empid = Integer.parseInt(d.readLine());
System.out.println("Enter employee name : ");
@SuppressWarnings("deprecation")
String empname = d.readLine();
System.out.println("Enter employee ID : ");
@SuppressWarnings("deprecation")
double empsalary = Double.parseDouble(d.readLine());
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Connection con;
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/testDB","root","");
PreparedStatement pst = con.prepareStatement("insert into `employee` values(?,?,?");
pst.setInt(1, empid);
pst.setString(2, empname);
pst.setDouble(3, empsalary);
int rowcount = pst.executeUpdate();
System.out.println(rowcount + " row has been instered");
} catch (SQLException e) {
e.printStackTrace();
}
下面是当我尝试运行它时它给我的错误:
com.mysql.jdbc.exceptions.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 '' at line 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1604)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1504)
at com.test.jdbcExample.main(jdbcExample.java:47)
values子句中缺少右括号
PreparedStatement pst = con.prepareStatement("insert into employee values(?,?,?)");
此行中出现语法错误:
PreparedStatement pst = con.prepareStatement("insert into `employee` values(?,?,?");
您缺少values子句的右括号。我从mysql论坛上读到了这一点,没有引号,我也有相同的内容problems@Seekerakos还有缺少的右括号。@Seekerakos主要问题是缺少右括号,但是您通常也指定要插入的列。如果添加了列或表中列的顺序发生变化,您当前的插入将中断。是的,我解决了。Gmartines说同样的话,感谢大家抽出时间!!
PreparedStatement pst = con.prepareStatement("insert into employee values(?,?,?)");