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();
还有很多别的情况,欢迎讨论
分享到:
相关推荐
int i = stmt.executeUpdate(sql); if (i > 0) { System.out.println("注册成功"); } else { System.out.println("注册失败"); } } catch (Exception e) { e.printStackTrace(); } ...
JDBC 中 PreparedStatement 接口提供的 execute、executeQuery 和 executeUpdate 之间的区别及用法 JDBC 中的 PreparedStatement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。...
今天小编就为大家分享一篇关于JDBC Oracle执行executeUpdate卡死问题的解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
JDBC实例教程 JDBC(Java Database Connectivity)是一种Java API,用于连接和操作关系数据库。以下是JDBC实例教程的详细知识点: JDBC 代码手册 JDBC 代码手册是 JDBC 的核心组件之一,由 Eric 于 2008 年 1 月 ...
1、JDBC(Java Database Connection):java连接数据库统一接口API,底层主要通过直接的JDBC驱动和 JDBC-ODBC桥驱动实现与数据库的连接。 1>.JDBC驱动程序类型: <1>.JDBC-ODBC桥加ODBC驱动程序:需要ODBC驱动,适合...
1、JavaBean中使用JDBC事务处理 在JDBC中怎样将多个SQL语句组合成一个事务呢?在JDBC中,打开一个连接对象Connection时,缺省是auto-commit模式,每个SQL语句都被当作一个事务,即每次执行一个语句,都会自动的得到...
MySQL 5.1 安装及 JDBC 配置指南 MySQL 是一个开源的关系型数据库管理系统,广泛应用于 Web 应用程序、企业级应用程序和其他软件系统中。MySQL 5.1 是 MySQL 的一个主要版本,本文将指导您如何安装 MySQL 5.1 并...
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解决 1.破解仅支持连续查询50次和1000行的限制; 2.修复原版jar包使用execute()和executeUpdate()方法报空指针异常的BUG。
executeQuery executeUpdate的区别
execute、executeQuery和executeUpdate之间的区别
5. 命令对象执行语句int count = st.executeUpdate(sql); //注意 delete insert update 返回的是受影响的行数 //相当于执行sql语句 命令对象执行语句ResultSet rs = st.executeQuery(sql);//注意 select 返回的是一...
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(Java Database Connectivity)是 Java 语言中用来连接数据库的一种标准。ODBC(Open...
1.破解仅支持连续查询50次和1000行的限制; 2.修复原版jar包使用execute()和executeUpdate()方法报空指针异常的BUG。
MySQL 5.1 安装教程及 JDBC 配置指南 MySQL 是一个开源的关系数据库管理系统,由 Michael Widenius 和 David Axmark 于 1995 年创建。 MySQL 5.1 是 MySQL 的一个重要版本,本文将介绍如何安装 MySQL 5.1 及配置 ...
我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理,或者通过利用PreparedStatement对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用Oracle专有的...
JAVA 使用 JDBC 进行 insert 操作添加信息到数据库 一、 JDBC 概述 JDBC(Java Database Connectivity)是一种 Java 应用程序用来与数据库进行交互的 API。它提供了一组标准的接口,允许 Java 应用程序与各种...
execute、executeQuery和executeUpdate之间的区别.doc