使用预编译操作对象PreparedStatement报SQL语法错误
在IDEA连接MySQL数据库使用preparedStatement进行预编译SQL语句时报错
String sql = "insert into account values(?,?,?,?);";
PreparedStatement st = con.prepareStatement(sql);
st.setInt(1,13);
st.setString(2,"张三");
st.setDouble(3,1000000.00);
st.setDate(4,new java.sql.Date(System.currentTimeMillis()));
// 6.执行sql语句
st.executeUpdate(sql);
报错
Exception in thread "main" java.lang.RuntimeException: java.sql.SQLSyntaxErrorException: 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.zretc.demo1.预编译语句.main(预编译语句.java:43)
Caused by: java.sql.SQLSyntaxErrorException: 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.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
解决方法
获取的操作对象PreparedStatement st = con.prepareStatement(sql);
进行操作时不需要参数;
正确写法:
st.executeUpdate();
错误写法:
st.executeUpdate(sql);