这个准备好的声明我做错了什么?

时间:2012-09-24 10:22:35

标签: java sql oracle prepared-statement

private Connection conn = DriverManager.getConnection(URL, info);
try {
String sql = "INSERT INTO \"STUD1582251\".\"ACCOUNTS\" VALUES USERNAME=?, PASSWORD=?, PORTFOLIONAME=?";
    PreparedStatement stm = conn.prepareStatement(sql);
    stm.setString(1, user.getUsername());
    stm.setString(2, user.getPassword());
    stm.setString(3, user.getPortfolioName());
    System.out.println(sql);
    stm.executeUpdate();
} catch (SQLException e) {
    e.printStackTrace();
}

异常

  

SELECT username FROM“STUD1582251”。“ACCOUNTS”WHERE username =?插入   INTO“STUD1582251”。“ACCOUNTS”VALUES USERNAME =?,PASSWORD =?,   PORTFOLIONAME =? java.sql.SQLSyntaxErrorException:ORA-00933:SQL   命令未正确结束

1 个答案:

答案 0 :(得分:7)

INSERT SQL语句必须是:

 String sql = "INSERT INTO \"STUD1582251\".\"ACCOUNTS\" (USERNAME,PASSWORD,PORTFOLIONAME) VALUES (?,?,?)";

PS:如果它是保留字,请在标识符周围使用“(双引号)。