`
nkadun
  • 浏览: 54286 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

关于jdbc executeUpdate的返回值

 
阅读更多
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中:
INSERT INTO T VALUES(?, ?) ON DUPLICATE KEY UPDATE c = ?;

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

PostgreSQL中:
INSERT INTO T1 VALUES(?, ?);

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

所以不能简单地靠返回值再决定回滚,即:
int rowN = st.executeUpdate(sql);
if(rowN == 1) //错误代码
   conn.rollback();
if(rowN < 1) //错误代码
   conn.rollback();


还有很多别的情况,欢迎讨论
分享到:
评论

相关推荐

    jdbc连接代码

    int i = stmt.executeUpdate(sql); if (i &gt; 0) { System.out.println("注册成功"); } else { System.out.println("注册失败"); } } catch (Exception e) { e.printStackTrace(); } ...

    JDBC中PreparedStatement接口提供的execute、executeQuery和executeUpdate之间的区别及用法

    JDBC 中 PreparedStatement 接口提供的 execute、executeQuery 和 executeUpdate 之间的区别及用法 JDBC 中的 PreparedStatement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。...

    JDBC Oracle执行executeUpdate卡死问题的解决方案

    今天小编就为大家分享一篇关于JDBC Oracle执行executeUpdate卡死问题的解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    jdbc实例教程

    JDBC实例教程 JDBC(Java Database Connectivity)是一种Java API,用于连接和操作关系数据库。以下是JDBC实例教程的详细知识点: JDBC 代码手册 JDBC 代码手册是 JDBC 的核心组件之一,由 Eric 于 2008 年 1 月 ...

    JDBC详解HTML-JDBC.pp

    1、JDBC(Java Database Connection):java连接数据库统一接口API,底层主要通过直接的JDBC驱动和 JDBC-ODBC桥驱动实现与数据库的连接。 1&gt;.JDBC驱动程序类型: &lt;1&gt;.JDBC-ODBC桥加ODBC驱动程序:需要ODBC驱动,适合...

    JDBC事务处理机制探秘

    1、JavaBean中使用JDBC事务处理 在JDBC中怎样将多个SQL语句组合成一个事务呢?在JDBC中,打开一个连接对象Connection时,缺省是auto-commit模式,每个SQL语句都被当作一个事务,即每次执行一个语句,都会自动的得到...

    mysql5.1安装教程+JDBC配置整理.pdf

    MySQL 5.1 安装及 JDBC 配置指南 MySQL 是一个开源的关系型数据库管理系统,广泛应用于 Web 应用程序、企业级应用程序和其他软件系统中。MySQL 5.1 是 MySQL 的一个主要版本,本文将指导您如何安装 MySQL 5.1 并...

    踩踩踩JDBC六大步骤

    1、JDBC编程六大步: ...1.class.forName(driver) 2.new oracle.jdbc.driver.OracleDriver(); 3.java -Djdbc.drivers=oracle....stmt.executeUpdate(sql); stmt.executeQuery(sql); pstmt.execute*(); 5)获得并处理结果集

    Access_JDBC30.jar

    Access_JDBC30.jar解决 1.破解仅支持连续查询50次和1000行的限制; 2.修复原版jar包使用execute()和executeUpdate()方法报空指针异常的BUG。

    executeQuery executeUpdate的区别

    executeQuery executeUpdate的区别

    execute、executeQuery和executeUpdate之间的区别

    execute、executeQuery和executeUpdate之间的区别

    使用JDBC总结操作数据库

    5. 命令对象执行语句int count = st.executeUpdate(sql); //注意 delete insert update 返回的是受影响的行数 //相当于执行sql语句 命令对象执行语句ResultSet rs = st.executeQuery(sql);//注意 select 返回的是一...

    jdbc连接数据库getConnection 增、删、改、查

    String url = "jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf-8"; String user = "root"; String password = "root"; String driver="com.mysql.jdbc.Driver"; try { Class.forName...

    JSP用JDBC-ODBC连接SQL Server和Mysql和JDBC驱动连接各种数据库

    JSP 用 JDBC-ODBC 连接 SQL Server 和 Mysql 和 JDBC 驱动连接各种数据库 JSP 是一种服务器端脚本语言,用于创建动态网页。JDBC(Java Database Connectivity)是 Java 语言中用来连接数据库的一种标准。ODBC(Open...

    Access_JDBC30.jar【破解版】

    1.破解仅支持连续查询50次和1000行的限制; 2.修复原版jar包使用execute()和executeUpdate()方法报空指针异常的BUG。

    mysql5.1安装教程+JDBC配置借鉴.pdf

    MySQL 5.1 安装教程及 JDBC 配置指南 MySQL 是一个开源的关系数据库管理系统,由 Michael Widenius 和 David Axmark 于 1995 年创建。 MySQL 5.1 是 MySQL 的一个重要版本,本文将介绍如何安装 MySQL 5.1 及配置 ...

    jdbc连接数据库的方式2

    我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理,或者通过利用PreparedStatement对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用Oracle专有的...

    JAVA使用JDBC进行insert操作添加信息到数据库

    JAVA 使用 JDBC 进行 insert 操作添加信息到数据库 一、 JDBC 概述 JDBC(Java Database Connectivity)是一种 Java 应用程序用来与数据库进行交互的 API。它提供了一组标准的接口,允许 Java 应用程序与各种...

    execute、executeQuery和executeUpdate之间的区别.doc

    execute、executeQuery和executeUpdate之间的区别.doc

Global site tag (gtag.js) - Google Analytics