SQL中execute操作返回false的问题
来源:互联网 发布:淘宝详情页制作思路 编辑:程序博客网 时间:2024/05/16 12:30
博客原文
今天在码代码的时候遇到了一个问题,代码如下:
SQL一: sql = " update t_receive_user set user_email = ?, user_name = ?, user_tel = ?, update_timestamp = ? , note = ? " + " where user_sid = ? "; connection = getDataSource().getConnection(); ps = connection.prepareStatement(sql); ps.setObject(1,tReceiveUser.getUserEmail()); ps.setObject(2,tReceiveUser.getUserName()); ps.setObject(3,tReceiveUser.getUserTel()); ps.setObject(4,Time.getCurrentTime()/1000); ps.setObject(5,tReceiveUser.getNote()); ps.setObject(6,tReceiveUser.getUserSid()); System.out.println(ps.execute());SQL二: sql = " delete t_receive_user where user_sid = ? "; connection = getDataSource().getConnection(); ps = connection.prepareStatement(sql); ps.setObject(1,tReceiveUser.getUserSid()); System.out.println(ps.execute());SQL三:sql = "INSERT t_receive_user (user_email,user_name,user_tel,update_timestamp,note)" + " values (?,?,?,?,?)"; ps = connection.prepareStatement(sql); ps.setObject(1,tReceiveUser.getUserEmail()); ps.setObject(2,tReceiveUser.getUserName()); ps.setObject(3,tReceiveUser.getUserTel()); ps.setObject(4,Time.getCurrentTime()/1000); ps.setObject(5,tReceiveUser.getNote()); System.out.println(ps.execute());我发现即使我的数据库更新成功、删除成功、增加成功,返回值都是false。
execute内部细节代码如下:
public boolean execute() throws SQLException { synchronized(this.checkClosed().getConnectionMutex()) { boolean returnVal = false; this.checkStreamability(); this.setInOutParamsOnServer(); this.setOutParams(); returnVal = super.execute(); if(this.callingStoredFunction) { this.functionReturnValueResults = this.results; this.functionReturnValueResults.next(); this.results = null; } this.retrieveOutParams(); return !this.callingStoredFunction?returnVal:false; } }查资料发现:boolean execute() throws SQLException在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。一些特别处理过的语句返回多个结果,execute 方法处理这些复杂的语句;executeQuery 和 executeUpdate 处理形式更简单的语句。 execute 方法返回一个 boolean 值,以指示第一个结果的形式。必须调用 getResultSet 或 getUpdateCount 方法来检索结果,并且必须调用 getMoreResults 移动到任何后面的结果返回:如果第一个结果是 ResultSet 对象,则返回 true;如果第一个结果是更新计数或者没有结果,则返回 false,意思就是如果是查询的话返回true,如果是更新或插入的话就返回false了;execute()返回的是一个boolean值,代表两种不同的操作啊,getResultSet()返回的是结果集,而getUpdateCount()返回的是更新的记数。
阅读全文
0 0
- SQL中execute操作返回false的问题
- sql Statemente execute 返回值为false
- jquery中each的返回false问题
- execute返回值的问题
- PHP的msg_get_queue返回false的问题
- 关于"Process32First"返回false的问题
- CheckBox控件返回"true,false"的问题
- Yii2 model->save() 返回false的问题
- bindService返回false问题
- 解决Myeclipse10中使用javascript验证form表单,返回true(false)不支持的问题
- python中os.path.isfile()和os.path.isdir()均返回false的问题
- struts execute方法中调用addFieldError方法,返回问题
- Statement 的 execute(sql) 方法的返回值
- Execute Sql Task 的Result DataSet如何返回
- Execute Sql Task 的Result DataSet如何返回
- PreparedStatement execute执行插入成功却返回false
- PreparedStatement execute执行插入成功却返回false
- 为什么PreparedStatement execute执行插入成功却返回false
- POJ 3126 Prime Path
- HashCode和equals的面试问题
- 我安装archlinux的过程总结
- Ubuntu16.04 和Windows远程桌面
- 最大子列和(算法复杂度优化)
- SQL中execute操作返回false的问题
- Android的RadioGroup简单使用例子
- Nodejs + azure +webrtc 实现android 和web视频聊天步骤
- android studio gradle:download http://jcenter 卡住解决办法
- 数字三角形问题(简单动态规划)-算法设计与分析
- spring整合struts2模型驱动访问action失败
- 1-2 安装beanstalkd与pheanstalk类
- Construct 2游戏制作教程之连线消除
- python常用库安装