`

ResultSet回滚

SQL 
阅读更多
设置可滚动的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用法集锦

    默认情况下,`ResultSet`关闭时,未提交的事务可能会被回滚。确保正确管理和提交事务以保持数据一致性。 6. `ResultSet`的类型: 有三种类型的`ResultSet`,它们定义了结果集的滚动行为: - `TYPE_FORWARD_ONLY`:...

    jdbc学习文档

    6. **关闭资源**:最后关闭Statement、ResultSet和Connection对象。 **1.4 QuickStart示例** 示例代码展示了如何使用JDBC连接数据库并执行查询操作: ```java // 加载MySQL数据库驱动 Class.forName(...

    10. RS的用法

    确保在开始查询之前开启事务,并在所有操作成功后提交,或者在出现错误时回滚。 5. **性能优化**:ResultSet的默认类型是ForwardOnly,只支持单向移动。如果需要随机访问,可以设置为ScrollInsensitive或...

    SQLCEResultSetSample

    在多条SQL语句必须一起成功执行或一起回滚的情况下,使用事务是非常重要的。 通过这些知识点,你可以了解如何在C#中利用SQL Server Compact Edition执行查询并处理ResultSet。具体的代码示例将展示如何实现这些概念...

    韩顺平 java 课堂笔记(超全 jsp,j2se,j2ee)

    rs = statement.executeQuery("SELECT * FROM some_table", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ``` #### 示例代码解析 在提供的代码片段中,演示了如何使用JDBC连接Oracle数据库,...

    JDBC笔记_JDBC学习笔记_

    注意,在回滚后必须关闭所有资源,包括ResultSet和Statement。 四、JDBC优化 1. 使用PreparedStatement代替Statement,减少解析时间,提高效率。 2. 使用连接池:例如C3P0、DBCP、HikariCP等,避免频繁创建和销毁...

    JDBC学习资料.pdf

    此外,JDBC还支持数据库事务的管理,通过Connection对象的setAutoCommit()方法控制自动提交,以及commit()和rollback()方法来提交或回滚事务。 在上述示例代码中,创建了一个名为teacher的表,包含id、name、salary...

    JDBC驱动for sqlserver、oracle、mysql

    JDBC支持事务管理,通过setAutoCommit()方法可以开启或关闭自动提交,提交事务使用commit(),回滚事务则使用rollback()。在多线程环境下,需注意并发控制和事务隔离级别。 8. 错误处理和异常处理: 在进行数据库...

    JAVA数据库DbHelper.pdf

    DBHelper类是一个用于简化数据库操作的工具类,它主要实现了对数据库的连接、查询、更新、提交和回滚操作。下面将详细介绍该类涉及的JAVA数据库操作的知识点: 1. 数据库连接(DriverManager.getConnection):...

    Db.rar_滚动

    7. **事务管理**:JDBC也支持事务处理,如`Connection.setAutoCommit(boolean autoCommit)`来开启或关闭自动提交,以及`Connection.commit()`和`Connection.rollback()`来显式提交或回滚事务。 综上所述,"Db.java...

    JAVA数据库基本操作指南.doc

    在Java中,可以使用Connection对象的`setAutoCommit(false)`关闭自动提交,然后手动调用`commit()`提交事务或`rollback()`回滚事务。 以上就是Java进行数据库操作的基本流程和重要技巧。在实际应用中,还需要考虑...

    Hibernate操作数据库的方法

    开发者可以通过Session的Transaction接口来管理事务,例如,开始事务、提交事务和回滚事务等。 5. **HibernateUtil**:HibernateUtil类是一个实用类,用于管理SessionFactory对象。通常包含一个静态的...

    JDBC学习笔记(精华版)-1

    4. **回滚事务**:如果出现错误,使用`Connection.rollback()`回滚事务,撤销所有更改。 5. **设置隔离级别**:通过`Connection.setTransactionIsolation()`可以设置事务的隔离级别,包括读未提交、读已提交、可...

    Java中数据库事务处理的代码清单.pdf

    事务处理涉及一系列数据库操作,这些操作要么全部成功,要么全部回滚,以防止数据不一致的情况发生。以下是一份简化的Java中数据库事务处理的代码清单,以及相关的知识点解析。 1. **连接数据库**: - 在`Connect...

    jdbc 总结 有参考价值

    JDBC提供了对数据库事务的支持,包括开启事务(Connection.setAutoCommit(false))、提交事务(Connection.commit())、回滚事务(Connection.rollback())和设置事务隔离级别(Connection.setTransactionIsolation...

    jdbc连接模板-代码

    6. 事务管理:如果涉及多条SQL操作,可以使用`Connection`对象的`setAutoCommit(false)`开启手动事务,并通过`commit()`或`rollback()`来提交或回滚事务。 7. 异常处理:在上述过程中,应捕获并处理可能抛出的...

    《Java程序设计案例教程》教学课件09Java数据库编程.pptx

    例如,ResultSet.TYPE_FORWARD_ONLY表示只能向下移动,不支持回滚;ResultSet.TYPE_SCROLL_INSENSITIVE允许上下移动,但对数据库变化不敏感;ResultSet.TYPE_SCROLL_SENSITIVE则在移动时会反映数据库的最新状态。...

    实验5JDBC实验.rar_java jdbc

    - **手动提交和回滚**:调用`Connection.commit()`提交事务,`Connection.rollback()`回滚事务。 4. **结果集处理** - ** ResultSet对象**:包含查询结果,通过`next()`方法移动指针,访问当前行的列数据。 - **...

    一头扎进JDBC视频教程源码

    - 事务控制:如何开始、提交、回滚事务,以及使用try-catch-finally块进行自动提交。 5. **第五讲:批处理** - 批处理API:学习使用BatchUpdateException和addBatch()方法进行批量SQL执行。 - 提高性能:理解...

    jdbc连接数据库

    可以通过Connection对象的setAutoCommit(false)来关闭自动提交,然后使用commit()和rollback()方法控制事务的提交或回滚。 四、批处理 批处理允许一次提交多个SQL语句,提高性能。使用Statement对象的addBatch()...

Global site tag (gtag.js) - Google Analytics