java - JDBC 插入错误

标签 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 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(?,?,?)");

关于java - JDBC 插入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26284945/

相关文章:

sql - t sql 中是否有带有变量的 StartsWith 或 Contains ?

java - 如何在java运行时更改具体装饰器中的变量

java - 临时表的对象名称无效

java - 升级到 Quarkus 1.3.0-FINAL 后运行测试时出现 NoSuchMethodException 错误

mysql - InnoDB 到 MyISAM 转换奇怪的性能行为

mysql - MariaDb SQL 注入(inject)

c# - 获取查询中列的列别名?

如果不在数据库中,MYSQL 插入下周日期

java - Android java-处理主 Activity 中多个按钮的正确方法

java - 有没有办法在接口(interface)引用实现中没有 JAX-WS 注释的情况下将接口(interface)与 Jersey RESTful 服务一起使用?