- 浏览: 209686 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (163)
- java综合 (24)
- javaweb (6)
- javascript (14)
- web前端 (3)
- Struts1 (0)
- Struts2 (2)
- hibenate (4)
- spring (12)
- 软件工程 (2)
- 网站建设 (2)
- 数据库 (9)
- FusionCharts (5)
- EXTJS (4)
- Spring MVC (2)
- html (1)
- Linux (19)
- 其他 (2)
- SSI (2)
- velocity (3)
- 设计模式 (1)
- 发布方面 (2)
- 算法 (2)
- 生活感悟 (8)
- flex (6)
- 搜索方面 (7)
- 架构 (1)
- IOS开发 (5)
- xml (1)
最新评论
-
ddccjjwwjj:
谢谢你总算找到一个正确的答案!!!
ExtJs 中 combo 获得displayField 和 valueField -
yulanlian:
uld not open ServletContext res ...
web.xml中配置Spring -
jinnianshilongnian:
id能进行SAX解析ID验证,name不行。name在使用如s ...
Spring配置中<bean>的id和name属性区别 -
白色蜻蜓:
不错顶下
s2sh框架搭建需要的jar包
Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。
方法executeQuery
用于产生单个结果集的语句,例如 SELECT 语句。 被使用最多的执行 SQL 语句的方法是 executeQuery。这个方法被用来执行 SELECT 语句,它几乎是使用最多的 SQL 语句。
方法executeUpdate
用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
使用executeUpdate方法是因为在 createTableCoffees 中的 SQL 语句是 DDL (数据定义语言)语句。创建表,改变表,删除表都是 DDL 语句的例子,要用 executeUpdate 方法来执行。你也可以从它的名字里看出,方法 executeUpdate 也被用于执行更新表 SQL 语句。实际上,相对于创建表来说,executeUpdate 用于更新表的时间更多,因为表只需要创建一次,但经常被更新。
方法execute:
用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能
execute方法应该仅在语句能返回多个ResultSet对象、多个更新计数或ResultSet对象与更新计数的组合时使用。当执行某个已存储过程或动态执行未知 SQL 字符串(即应用程序程序员在编译时未知)时,有可能出现多个结果的情况,尽管这种情况很少见。
因为方法 execute 处理非常规情况,所以获取其结果需要一些特殊处理并不足为怪。例如,假定已知某个过程返回两个结果集,则在使用方法 execute 执行该过程后,必须调用方法 getResultSet 获得第一个结果集,然后调用适当的 getXXX 方法获取其中的值。要获得第二个结果集,需要先调用 getMoreResults 方法,然后再调用 getResultSet 方法。如果已知某个过程返回两个更新计数,则首先调用方法 getUpdateCount,然后调用 getMoreResults,并再次调用 getUpdateCount。
对于不知道返回内容,则情况更为复杂。如果结果是 ResultSet 对象,则方法 execute 返回 true;如果结果是 Java int,则返回 false。如果返回 int,则意味着结果是更新计数或执行的语句是 DDL 命令。在调用方法 execute 之后要做的第一件事情是调用 getResultSet 或 getUpdateCount。调用方法 getResultSet 可以获得两个或多个 ResultSet 对象中第一个对象;或调用方法 getUpdateCount 可以获得两个或多个更新计数中第一个更新计数的内容。
当 SQL 语句的结果不是结果集时,则方法 getResultSet 将返回 null。这可能意味着结果是一个更新计数或没有其它结果。在这种情况下,判断 null 真正含义的唯一方法是调用方法 getUpdateCount,它将返回一个整数。这个整数为调用语句所影响的行数;如果为 -1 则表示结果是结果集或没有结果。如果方法 getResultSet 已返回 null(表示结果不是 ResultSet 对象),则返回值 -1 表示没有其它结果。也就是说,当下列条件为真时表示没有结果(或没有其它结果):
((stmt.getResultSet() == null) && (stmt.getUpdateCount() == -1))
如果已经调用方法 getResultSet 并处理了它返回的 ResultSet 对象,则有必要调用方法 getMoreResults 以确定是否有其它结果集或更新计数。如果 getMoreResults 返回 true,则需要再次调用 getResultSet 来检索下一个结果集。如上所述,如果 getResultSet 返回 null,则需要调用 getUpdateCount 来检查 null 是表示结果为更新计数还是表示没有其它结果。
当 getMoreResults 返回 false 时,它表示该 SQL 语句返回一个更新计数或没有其它结果。因此需要调用方法 getUpdateCount 来检查它是哪一种情况。在这种情况下,当下列条件为真时表示没有其它结果:
((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))
下面的代码演示了一种方法用来确认已访问调用方法 execute 所产生的全部结果集和更新计数:
stmt.execute(queryStringWithUnknownResults);
while (true) {
int rowCount = stmt.getUpdateCount();
if (rowCount > 0) { // 它是更新计数
System.out.println("Rows changed = " + count);
stmt.getMoreResults();
continue;
}
if (rowCount == 0) { // DDL 命令或 0 个更新
System.out.println(" No rows changed or statement was DDL
command");
stmt.getMoreResults();
continue;
}
// 执行到这里,证明有一个结果集
// 或没有其它结果
ResultSet rs = stmt.getResultSet;
if (rs != null) {
. . . // 使用元数据获得关于结果集列的信息
while (rs.next()) {
. . . // 处理结果
stmt.getMoreResults();
continue;
}
break; // 没有其它结果
发表评论
-
Java RandomAccessFile用法
2012-08-11 19:00 1420http://blog.csdn.net/akon_vm/ar ... -
Java 线程池的原理与实现
2012-06-08 14:58 750http://hi.baidu.com/obullxl/blo ... -
Java 线程池学习
2012-06-08 14:57 739http://www.cnblogs.com/jersey/a ... -
关联--依赖、组合--聚合 联系与区别
2012-06-06 11:51 986http://wenku.baidu.com/view/978 ... -
Java程序员面试中的多线程问题
2012-06-05 09:51 903http://sd.csdn.net/a/20120528/2 ... -
Java+多线程同步问题的探究
2012-05-16 21:05 8101、http://tech.ddvip.com/2010-05 ... -
java动态代理(JDK和cglib)
2012-05-06 18:00 770http://www.cnblogs.com/jqyp/arc ... -
Java语法总结 - 内部类
2012-05-03 23:08 744从Java1.1开始引入了内部类以来,它就引起了人们的激烈争论 ... -
深入分析 Java 中的中文编码问题
2012-03-15 09:02 485http://tech.ddvip.com/2012-03/1 ... -
Java框架数据库连接池比较(c3p0,dbcp和proxool)
2012-03-13 15:28 9311现在常用的开源数据连接池主要有c3p0,dbcp和proxoo ... -
类实例化加载的顺序
2011-12-20 14:38 639大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码 ... -
java深入探索之1:类加载和实例化过程探析
2011-12-20 14:36 713http://www.cnblogs.com/xiaobai4 ... -
完整java开发中JDBC连接数据库代码和步骤
2011-12-19 19:54 840JDBC连接数据库 • ... -
Java ThreadLocal介绍
2011-10-27 11:27 665概述 我们知道Spring通 ... -
怎样取得当前日期(包括时间)并把它存到数据库中?
2011-06-29 21:18 1196java.util.Date date = new ... -
JAVA中file路径问题
2011-06-22 11:40 1086前言 Java的路径问 ... -
使用 dom4j 解析 XML
2011-06-22 11:03 640http://www.ibm.com/developerwor ... -
Dom4j下载及使用Dom4j读写XML简介
2011-06-22 11:03 668http://www.blogjava.net/jungles ... -
JAVA文件拷贝
2011-06-20 09:37 796/** 02 * 将inputFile复制 ... -
Java中对Map(HashMap,TreeMap,Hashtable等)的排序
2011-05-25 14:52 944首先简单说一下他们之间的区别: HashMap: 最常用的 ...
相关推荐
JDBC 中 PreparedStatement 接口提供的 execute、executeQuery 和 executeUpdate 之间的区别及用法 JDBC 中的 PreparedStatement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。...
### JDBC中Statement接口提供的execute、executeQuery和executeUpdate的区别 #### 一、概述 在Java开发过程中,尤其是在处理数据库操作时,我们经常会遇到`execute`、`executeQuery`和`executeUpdate`这三个方法。...
### Execute、ExecuteQuery和ExecuteUpdate之间的区别 在Java开发中,尤其涉及到数据库操作时,`execute`, `executeQuery` 和 `executeUpdate` 这三个方法是JDBC编程中非常重要的一部分。它们分别适用于不同类型的...
在MySQL和其他支持JDBC(Java Database Connectivity)的数据库系统中,`Statement`接口提供了三个用于执行SQL语句的方法:`execute()`, `executeUpdate()` 和 `executeQuery()`。这三个方法在处理不同类型的SQL语句...
`Connection`接口提供了创建Statement、PreparedStatement和CallableStatement对象的方法,以执行SQL语句。 - `createStatement()`:返回一个Statement对象,用于执行非参数化的SQL语句。 - `prepareStatement...
根据给定文件的信息,本文将重点讲解第18章中关于JDBC类和接口的知识点。这部分内容主要涉及Java数据库连接(JDBC)的核心概念、关键类和接口,以及它们如何帮助开发者进行数据库操作。 ### 18.2 JDBC类和接口 ###...
3. `Statement`接口的`executeUpdate(String sql)`方法用于执行SQL中的`insert`、`update`和`delete`语句。 4. `PreparedStatement`是`Statement`的子接口,用于执行预编译的SQL语句。 5. `ResultSet`接口中定义了...
4. **执行SQL**:调用Statement或PreparedStatement的`executeQuery()`或`executeUpdate()`方法执行SQL语句。 5. **处理结果**:如果执行的是查询语句,可以使用ResultSet对象遍历查询结果。例如,`while ...
可以通过调用 Statement 的 executeQuery、executeUpdate 或 execute 方法来执行 SQL 语句。 第六步:处理结果集 在执行 SQL 语句后,需要处理结果集。可以通过调用 Statement 的 getResultSet 方法来获取结果集,...
- 执行SQL:调用Statement的executeQuery()或executeUpdate()方法。 - 处理结果:如果执行的是查询,通过ResultSet处理结果;如果是更新操作,返回受影响的行数。 - 关闭资源:确保在操作完成后关闭Statement、...
驱动程序通常以JAR包的形式提供,需要在应用程序中加载,以便Java程序能够通过JDBC接口与特定数据库进行通信。没有驱动,Java程序无法完成数据库的连接。 【JDBC for MySQL 的配置】 配置JDBC for MySQL通常涉及...
它提供了三种执行SQL语句的方法:`executeUpdate()`、`executeQuery()`和`execute()`。其中,`executeUpdate()`方法用于执行增、删、改操作,`executeQuery()`方法用于执行查询操作。 在上面的代码中,`...
1. **常用方法**:`execute()`, `executeQuery()`, `executeUpdate()`等,分别用于执行任意SQL语句、查询语句和更新语句。 2. **CRUD操作**:利用Statement执行Create(插入)、Read(查询)、Update(更新)和...
它是JDBC的核心类之一,主要用于用户和驱动程序之间的通信。`DriverManager`类的一些关键方法包括: - `getConnection(String url, Properties info)`:根据提供的URL和属性信息建立到数据库的连接。 - `getDrivers...
Hive JDBC是Apache Hive项目的一部分,它提供了一个Java数据库连接(JDBC)接口,使得其他应用程序,如Python、Java或任何支持JDBC的环境,能够与Hive进行交互。Hive JDBC驱动程序允许用户通过标准的JDBC API来执行...
4. **执行SQL语句/存储过程**: 使用Statement对象的executeQuery()或executeUpdate(),PreparedStatement的execute()方法。 5. **处理结果集**: 如果是查询操作,遍历ResultSet对象,获取数据。 6. **关闭资源**: ...
#### 五、JDBC 常用类和接口详解 **DriverManager** - `java.sql.DriverManager` 类提供了用于注册 JDBC 驱动和创建数据库连接的方法。 - **注册驱动**: - 使用 `Class.forName("com.mysql.jdbc.Driver")` 来...
- `Statement`方法区别:`execute()`执行任意语句,`executeUpdate()`用于增删改操作,`executeQuery()`用于查询。 - 固定驱动:直接实例化指定的`Driver`,然后通过`DriverManager.registerDriver(drv)`注册。 -...
4. **执行SQL**:调用Statement对象的`executeQuery()`(查询)、`executeUpdate()`(增删改)或`execute()`(执行存储过程)方法。 5. **处理结果**:对于查询操作,得到ResultSet对象并遍历;对于增删改操作,...
无论是简单的数据操作还是复杂的事务处理,JDBC都提供了相应的接口和方法来支持。随着Java技术的发展,出现了ORM框架(如Hibernate、MyBatis)简化了JDBC的使用,但了解JDBC的基础知识仍然是必要的,因为这些框架的...