ResultSet,RowSet
获得可滚动的结果集:
Statement stat = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY
);
获得可更新的结果集:
Statement stat = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATE
);
ResultSet中的Type取值:
TYPE_FORWARD_ONLY 不可滚动
TYPE_SCROLL_INSENSITIVE 结果集可滚动,但对数据库变化不敏感
TYPE_SCROLL_SENSITIVE 结果集可滚动,但对数据库变化敏感
ResultSet中的Concurrency取值:
CONCUR_READ_ONLY 结果集不能用于更新数据库
CONCUR_UPDATEABLE 结果集可以用于更新数据库
元数据的概念
通过java.sql.DatabaseMetaData可以获取数据库结构和表的详细信息。
可滚动的结果集虽然强,但交换过程,必须始终与数据库保持连接。如果一个操作要持续很久,则占用了宝贵的数据库连接资源。这时可以考虑使用行集,即RowSet。
RowSet继承自ResultSet,但不必始终保持与数据库的连接。
bwl 注:
rs.absolute(1),rs.first(),rs.last()需要Type为TYPE_SCROLL_INSENSITIVE或者TYPE_SCROLL_SENSITIVE,如果没有声明则会抛出异常;
rs.next()跟Type没有关系;
分享到:
相关推荐
为了避免因只进结果集引发的异常,可以采取以下几种策略: #### 1. 修改查询类型 最直接的方法是在创建`Session`时指定查询结果集为可滚动类型(scrollable)。这可以通过在Hibernate配置文件中设置`hibernate....
JDBC驱动分为几种类型,如Type 1、Type 2、Type 3和Type 4,其中Type 4是纯Java实现的,直接与数据库通信,通常效率更高且更易于跨平台。 要使用Impala的JDBC驱动,首先需要在Java项目中添加对应的JAR文件,这在...
本合集包含了几个主要的数据库厂商的JDBC驱动JAR包,包括Oracle、Microsoft SQL Server、SQLite、PostgreSQL以及IBM的DB2。 1. **Oracle JDBC驱动**:Oracle数据库的JDBC驱动分为 Thin 和 Thick 模式。Thin驱动是纯...
9. **性能优化**:JDBC提供了多种优化技巧,如关闭不再需要的资源(如结果集、Statement和连接),使用连接池来重用连接,以及合理使用`PreparedStatement`避免SQL注入。 10. **JDBC API的扩展**:随着技术的发展,...
JDBC原理和驱动程序的分类涉及以下几种驱动: 1. JDBC-ODBC桥驱动:这是最初级的驱动形式,通过ODBC层将JDBC调用映射到ODBC调用。这种方式简单,但效率较低,且不适用于分布式应用。 2. 本地API部分Java驱动(JDBC...
Access的JDBC驱动是Java数据库连接(Java Database Connectivity, JDBC)的一种实现,它允许Java程序与Microsoft Access数据库进行交互。在JDK 1.8之后,Oracle公司不再默认提供对ODBC(Open Database Connectivity...
JDBC 提供了一种统一的方式来连接数据库、执行 SQL 语句和处理结果集。 数据库连接池原理 数据库连接池是一种机制,用于提高数据库连接的效率和性能。连接池的工作原理是:当应用程序需要连接数据库时,连接池会...
下面将详细介绍标题和描述中提及的几种数据库的JDBC连接及特性。 1. **MySQL JDBC**: MySQL是一款开源、免费的关系型数据库管理系统,广泛应用于Web应用。使用MySQL JDBC驱动(也称为Connector/J),可以方便地在...
除了以上介绍的几种数据库外,还有多种其他类型的数据库也支持通过JDBC进行连接。 **1. ODBC连接方式** ODBC (Open Database Connectivity) 是一种用于访问数据库的标准接口。例如: ```java Class.forName("sun....
4. `ResultSet`接口:存储查询结果,提供遍历查询结果集的方法。 5. `DataSource`接口:JNDI服务中的数据源,提供更高级别的连接管理,如连接池和生命周期管理。 在Oracle JDBC驱动中,有以下关键类: - `Oracle...
Java Database Connectivity(JDBC)是Java平台中用于与关系数据库进行交互的一种标准接口。它是Java编程语言的一部分,允许Java应用程序执行SQL语句并处理结果。理解JDBC对于任何想要在Java环境中操作数据库的...
5. **ResultSet**:存储查询结果的对象,提供了遍历查询结果集的方法。 **五、JDBC接口间的关系** Connection对象创建Statement或PreparedStatement实例,而这些实例用于执行SQL语句。执行后返回ResultSet对象,...
JDBC(Java Database Connectivity)是Java编程语言中用于与数据库交互的一种标准接口,由Sun Microsystems(现为Oracle公司)开发。SQL Server JDBC Driver则是微软针对其SQL Server数据库服务器提供的一款开源、...
这可以通过以下几种方式实现: 1. 将jar文件放在项目的`lib`目录下,并在编译和运行时包含这个目录。 2. 如果使用IDE如Eclipse或IntelliJ IDEA,可以直接将jar文件添加到项目的构建路径中。 3. 在命令行中,使用`-...
现在回到问题本身,当出现"结果集已耗尽"的异常,通常有以下几种情况: 1. **循环遍历结果集时未正确检查结束条件**:最常见的情况是,程序员在for-each或while循环中遍历结果集,但没有在循环条件中检查`ResultSet...
这可以通过以下几种方式完成: 1. 将驱动的jar文件(如sqljdbc4.jar或mssql-jdbc.jar)放在项目根目录下的lib文件夹内。 2. 在IDE(如Eclipse、IntelliJ IDEA)中,将jar文件添加到项目的构建路径。 3. 使用Maven或...
2. **简单性**:JDBC的核心API非常简洁,常用的接口仅有几个,易于学习和使用。 #### 四、JDBC包介绍 1. **java.sql**:这是JDBC的基础包,包含了用于基本数据库编程的服务,例如创建连接、执行语句、准备语句和...
`Statement`接口包括以下几种类型: - **Statement**:用于执行简单的、不带参数的SQL语句。 - **PreparedStatement**:用于执行预编译的SQL语句,可以包含IN参数。 - **CallableStatement**:用于执行对数据库存储...
ResultSet接口则表示数据库查询操作返回的结果集。 JDBC的驱动程序是数据库厂商提供的实现了JDBC API接口的类,根据实现方式的不同,可以分为四种类型,但常用的主要有以下两种: 1. JDBC-ODBC桥接驱动:这种驱动...
JDBC 规范中定义了几个核心对象,掌握这些对象对于进行数据库操作至关重要: 1. **DriverManager**:用于注册 JDBC 驱动并获取数据库连接。 2. **Connection**:代表与数据库的连接。所有对数据库的操作都需要在一...