Jdbc executeUpdate 返回值

Jdbc executeUpdate 返回值原文地址:http://nkadun.iteye.com/blog/1435333javaapi里是这样说的executeUpdateintexecuteUpdate()throwsSQLExceptionExecutestheSQLstatementinthisPreparedStatementobject,whichmustbeanSQL

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

原文地址:http://nkadun.iteye.com/blog/1435333

java api里是这样说的
executeUpdate
int executeUpdate() throws SQLException
Executes the SQL statement in this PreparedStatement object, which must be an SQL INSERT, UPDATE or DELETE statement; or an SQL statement that returns nothing, such as a DDL statement.
Returns:
either (1) the row count for INSERT, UPDATE, or DELETE statements or (2) 0 for SQL statements that return nothing

在使用乐观锁的时候经常需要验证这个返回值来防止并发,但不同的JDBC驱动有不同的实现,并不是所有插入或更新都返回1,最近试了几个:
MySQL中:

Sql代码  

  1. INSERT INTO T VALUES(?, ?) ON DUPLICATE KEY UPDATE c = ?;  

会有1、2、3三种可能的返回值;

PostgreSQL中:

Sql代码  

  1. INSERT INTO T1 VALUES(?, ?);  

当T1没有主键时,插入返回值为0;

所以不能简单地靠返回值再决定回滚,即:

Java代码  

  1. int rowN = st.executeUpdate(sql);  
  2. if(rowN == 1//错误代码  
  3.    conn.rollback();  
  4. if(rowN < 1//错误代码  
  5.    conn.rollback();  

还有很多别的情况,欢迎讨论

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179954.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tar 打包的时候如何去掉目录前缀

    tar 打包的时候如何去掉目录前缀文章转载自:freefly的博客,对原作者表示感谢。问题:tarczfxx.tgz/xxx/xxx/A然后希望xx.tgz或xx.tar.gz里面就直接A这个目录不希望加前导xxx/xxx,我知道可以先cp这个目录到同一个目录再打包,不过想知道可以不可以不用另外cp到同一个目录 答案1:使用-C指定相对路径,如:tarczfx

    2022年5月6日
    77
  • python + selenium 刷B站播放量

    python + selenium 刷B站播放量

    2021年11月10日
    151
  • linux aaa认证服务器,华为设备安全之AAA认证

    linux aaa认证服务器,华为设备安全之AAA认证AAA系统的简称:认证(Authentication):验证用户的身份与可使用的网络服务;授权:依据认证结果开放网络服务给用户;AAA—–身份验证(Authentication)、授权(Authorization)和统计(Accounting)Cisco开发的一个提供网络安全的系统。参见authentication。authorization和accounting实验目的:实现dhcp动…

    2022年5月2日
    111
  • mysql获取当前时间的函数_Mysql获取函数

    mysql获取当前时间的函数_Mysql获取函数current_datecurrent_timecurrent_timestampcurdate()curtime()now()

    2022年10月5日
    0
  • nginx实现tomcat动静分离详解

    nginx实现tomcat动静分离详解1.为什么要实现动静分离1)nginx的处理静态资源能力超强主要是nginx处理静态页面的效率远高于tomcat的处理能力,如果tomcat的请求量为1000次,则nginx的请求量为6000次,tomcat每秒的吞吐量为0.6M,nginx的每秒吞吐量为3.6M,可以说,nginx处理静态资源的能力是tomcat处理能力的6倍,优势可见一斑。2)动态资源和静态资源分开,使服务器结构更

    2022年6月4日
    29
  • Java调用第三方接口示范

    Java调用第三方接口示范人工智能,零基础入门!http://www.captainbed.net/inner在项目开发中经常会遇到调用第三方接口的情况,比如说调用第三方的天气预报接口。使用流程【1】准备工作:在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的restTemplate来调用,上面有调用接口的方法【分为Get和Post方式的有参和无参调用】:pa…

    2022年4月26日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号