我对此方法有疑问:
public void insertIntoQueue(DTOQueue dtoQueue) { DbConnection dbConnection = new DbConnection(); Connection conn; try { conn = dbConnection.coneccion(); String sql = " INSERT INTO PURE_ENC_QUEUE (queueId,queueName) values(?,?);";
//creating PreparedStatement object to execute query
PreparedStatement preStatement = conn.prepareStatement(sql);
preStatement.setString(1, dtoQueue.getQueueId());
preStatement.setString(2, dtoQueue.getQueueName());
int result = preStatement.executeUpdate();
DbConnection.closeConnection(conn);
if(result > 0) {
System.out.println("Insertado");
} else {
System.out.println("No insertado");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("done");
} 当我运行它时,抛出异常
java.sql.SQLException:ORA-00933:SQL命令未正确结束
对这个问题有任何想法吗?谢谢!
问题来源于stack overflow
您需要删除查询字符串末尾的分号,即:
String sql = "INSERT INTO PURE_ENC_QUEUE (queueId,queueName) values(?,?)"; 另外,将代码重构为使用try-with-resources语句也是一个好主意。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。