首页 > 解决方案 > 我正在尝试插入 sql 但它不断给我错误

问题描述

我想通过java插入sql,但它给了我错误

public void addStudent(String name, int SID, String gender, String major, String nationality, int mobileNo,
            String birthDate, int deptNo) {

        try {
            PreparedStatement stmt = conn.prepareStatement("insert into students values("+ SID+ ", '"+name+"','"
                    + gender+"',"+mobileNo + ",TO_Date('"+birthDate+"', 'DD/MM/YYYY'), '"+ major+"', '"+nationality+"', null, "+deptNo+");");
            stmt.execute();
        } catch (SQLException e) {

            e.printStackTrace();
            return;

        }
    }

java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束

标签: javaoraclejdbc

解决方案


我不建议你PreparedStatement那样使用。这就是我会做的:

public void addStudent(Student student){
      int SID = student.getSID();
      String name = student.getName();
      // etc ...

      String query = "INSERT INTO students VALUES(?,?)";

      try{

         PreparedStatement prep = conn.prepareStatement(query);
         prep.setInt(1,SID);
         prep.setString(2,name);
         // etc ...

         prep.executeUpdate();

      }catch (SQLException e){

            e.printStackTrace();

      }
}

推荐阅读