设置可滚动的ResultSet类型
一般在创建结果集的通常使用如下方式:
Statement st = conn.CreateStatement() ResultSet rs = Statement.excuteQuery(sql);
由于这种结果集不支持,滚动的读去功能所以,如果获得这样一个结果集,只能使用它里面的next()方法,逐个的读去数据。在使用的时候非常的不便。那么怎么样才能使结果集可以支持前后滚动的效果呢?
要实现可以滚动的ResultSet在创建Statement时用如下的方法。
Statement st = conn.createStatement(int resultSetType, int resultSetConcurrency)
ResultSet rs = st.executeQuery(sqlStr)
其中两个参数的意义是: resultSetType是设置ResultSet对象的类型可滚动,或者是不可滚动。
取值如下:ResultSet.TYPE_FORWARD_ONLY只能向前滚动 ResultSet.TYPE_SCROLL_INSENSITIVE和Result.TYPE_SCROLL_SENSITIVE这两个方法都能够实现任意的前后滚动,使用各种移动的ResultSet指针的方法。
二者的区别在于前者对于修改不敏感,而后者对于修改敏感。 resultSetConcurency是设置ResultSet对象能够修改的,取值如下: ResultSet.CONCUR_READ_ONLY 设置为只读类型的参数。 ResultSet.CONCUR_UPDATABLE 设置为可修改类型的参数。
所以如果只是想要可以滚动的类型的Result只要把Statement如下赋值就行了。
Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = st.excuteQuery(sqlStr);
这时得到的就是可滚动的ResultSet。
这个类型支持前后滚动取得纪录next()、previous(),回到第一行first(),移到最后一行last()等操作。
分享到:
相关推荐
默认情况下,`ResultSet`关闭时,未提交的事务可能会被回滚。确保正确管理和提交事务以保持数据一致性。 6. `ResultSet`的类型: 有三种类型的`ResultSet`,它们定义了结果集的滚动行为: - `TYPE_FORWARD_ONLY`:...
6. **关闭资源**:最后关闭Statement、ResultSet和Connection对象。 **1.4 QuickStart示例** 示例代码展示了如何使用JDBC连接数据库并执行查询操作: ```java // 加载MySQL数据库驱动 Class.forName(...
确保在开始查询之前开启事务,并在所有操作成功后提交,或者在出现错误时回滚。 5. **性能优化**:ResultSet的默认类型是ForwardOnly,只支持单向移动。如果需要随机访问,可以设置为ScrollInsensitive或...
在多条SQL语句必须一起成功执行或一起回滚的情况下,使用事务是非常重要的。 通过这些知识点,你可以了解如何在C#中利用SQL Server Compact Edition执行查询并处理ResultSet。具体的代码示例将展示如何实现这些概念...
rs = statement.executeQuery("SELECT * FROM some_table", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ``` #### 示例代码解析 在提供的代码片段中,演示了如何使用JDBC连接Oracle数据库,...
注意,在回滚后必须关闭所有资源,包括ResultSet和Statement。 四、JDBC优化 1. 使用PreparedStatement代替Statement,减少解析时间,提高效率。 2. 使用连接池:例如C3P0、DBCP、HikariCP等,避免频繁创建和销毁...
此外,JDBC还支持数据库事务的管理,通过Connection对象的setAutoCommit()方法控制自动提交,以及commit()和rollback()方法来提交或回滚事务。 在上述示例代码中,创建了一个名为teacher的表,包含id、name、salary...
JDBC支持事务管理,通过setAutoCommit()方法可以开启或关闭自动提交,提交事务使用commit(),回滚事务则使用rollback()。在多线程环境下,需注意并发控制和事务隔离级别。 8. 错误处理和异常处理: 在进行数据库...
DBHelper类是一个用于简化数据库操作的工具类,它主要实现了对数据库的连接、查询、更新、提交和回滚操作。下面将详细介绍该类涉及的JAVA数据库操作的知识点: 1. 数据库连接(DriverManager.getConnection):...
7. **事务管理**:JDBC也支持事务处理,如`Connection.setAutoCommit(boolean autoCommit)`来开启或关闭自动提交,以及`Connection.commit()`和`Connection.rollback()`来显式提交或回滚事务。 综上所述,"Db.java...
在Java中,可以使用Connection对象的`setAutoCommit(false)`关闭自动提交,然后手动调用`commit()`提交事务或`rollback()`回滚事务。 以上就是Java进行数据库操作的基本流程和重要技巧。在实际应用中,还需要考虑...
开发者可以通过Session的Transaction接口来管理事务,例如,开始事务、提交事务和回滚事务等。 5. **HibernateUtil**:HibernateUtil类是一个实用类,用于管理SessionFactory对象。通常包含一个静态的...
4. **回滚事务**:如果出现错误,使用`Connection.rollback()`回滚事务,撤销所有更改。 5. **设置隔离级别**:通过`Connection.setTransactionIsolation()`可以设置事务的隔离级别,包括读未提交、读已提交、可...
事务处理涉及一系列数据库操作,这些操作要么全部成功,要么全部回滚,以防止数据不一致的情况发生。以下是一份简化的Java中数据库事务处理的代码清单,以及相关的知识点解析。 1. **连接数据库**: - 在`Connect...
JDBC提供了对数据库事务的支持,包括开启事务(Connection.setAutoCommit(false))、提交事务(Connection.commit())、回滚事务(Connection.rollback())和设置事务隔离级别(Connection.setTransactionIsolation...
6. 事务管理:如果涉及多条SQL操作,可以使用`Connection`对象的`setAutoCommit(false)`开启手动事务,并通过`commit()`或`rollback()`来提交或回滚事务。 7. 异常处理:在上述过程中,应捕获并处理可能抛出的...
例如,ResultSet.TYPE_FORWARD_ONLY表示只能向下移动,不支持回滚;ResultSet.TYPE_SCROLL_INSENSITIVE允许上下移动,但对数据库变化不敏感;ResultSet.TYPE_SCROLL_SENSITIVE则在移动时会反映数据库的最新状态。...
- **手动提交和回滚**:调用`Connection.commit()`提交事务,`Connection.rollback()`回滚事务。 4. **结果集处理** - ** ResultSet对象**:包含查询结果,通过`next()`方法移动指针,访问当前行的列数据。 - **...
- 事务控制:如何开始、提交、回滚事务,以及使用try-catch-finally块进行自动提交。 5. **第五讲:批处理** - 批处理API:学习使用BatchUpdateException和addBatch()方法进行批量SQL执行。 - 提高性能:理解...
可以通过Connection对象的setAutoCommit(false)来关闭自动提交,然后使用commit()和rollback()方法控制事务的提交或回滚。 四、批处理 批处理允许一次提交多个SQL语句,提高性能。使用Statement对象的addBatch()...