出现错误:ORA-01008: 并非所有变量都已绑定


 1 public boolean updataEmployee(Connection con,EmployeeVo vaule) {
 2         boolean flag = false;
 3         ResultSet set = null;
 4         
 5         //预编写sql,用?占位
 6         String sql ="update student set name=? where id=?";  
 7         
 8         //创建PreparedStatement对象
 9         PreparedStatement pstmt = null;
10         
11         try {
12             pstmt = con.prepareStatement(sql);   //预编译,等待赋值给占位符
13             pstmt.setString(1,vaule.getName());
14             pstmt.setString(2,vaule.getId());
15             
16             int n = pstmt.executeUpdate(sql);
17         } catch (SQLException e) {
18             e.printStackTrace();
19         }
20         
21         return flag;
22     }

报错 :

ORA-01008: 并非所有变量都已绑定

问题出来第16行,

executeUpdate(sql)这里的参数sql还是上面没有给占位符赋值的未完成的sql语句,变量都还未赋值,所以会说没有绑定。
其实再第13 14行执行完之后
PreparedStatement对象里的sql语句已经是完整的了,这参数一加又被覆盖掉了。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM