`
点点与麦兜
  • 浏览: 9753 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JDBC可滚动结果集

    博客分类:
  • JDBC
阅读更多
package com.lxf.jdbc;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ScrollTest {
    public static void main(String[] args) {
	read();
    }

    // 查询
    static void read() {
	// limit 0,2表示从第一行开始,显示两行
	String sql = "select * from user limit 0, 2";
	try (Statement ps = JdbcUtils.getConnection().createStatement(
		ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
		// 执行语句
		ResultSet rs = ps.executeQuery(sql);) {

	    // 处理结果
	    while (rs.next()) {
		System.out.println(rs.getInt("id") + "\t"
			+ rs.getString("name") + "\t" + rs.getDate("birthday")
			+ "\t" + rs.getDouble("money"));
	    }
	    while (rs.previous()) {
		System.out.println(rs.getInt("id") + "\t"
			+ rs.getString("name") + "\t" + rs.getDate("birthday")
			+ "\t" + rs.getDouble("money"));
	    }
	    //指定滚动到哪行
	    rs.absolute(3);

	} catch (SQLException e) {
	    e.printStackTrace();
	}
    }

}

方法:crateStatement(int resultSetType,int resultSetConcurrency);
     创建一个Statement对象,该对象将生产具有给定类型和并发性的ResultSet对象.
方法:createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability);
     创建一个 Statement 对象,该对象将生成具有给定类型、并发性和可保存性的 ResultSet 对象.


结果集类型:
        ResultSet.TYPE_FORWARD_ONLY:只能向前
        ResultSet.TYPE_SCROLL_INSENSITIVE :可滚动,不感知数据变化。
        ResultSet.TYPE_SCROLL_SENSITIVE 可滚动,并感知数据变化。
并发性:
      ResultSet.CONCUR_READ_ONLY:只读
      ResultSet.CONCUR_UPDATABLE :可更新
可保存性:
      ResultSet.HOLD_CURSORS_OVER_COMMIT:在提交时候关闭结果集

这里用的Mysql数据库,有些数据库不支持滚动,可用以下方法但效率极低
 static void read() {
	// 创建语句
	String sql = "select * from user";
	try (Statement ps = JdbcUtils.getConnection().createStatement(
		ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
		// 执行语句
		ResultSet rs = ps.executeQuery(sql);) {
            int i=0;
	    // 处理结果
	    while (rs.next() && i<2) {
                i++;
		System.out.println(rs.getInt("id") + "\t"
			+ rs.getString("name") + "\t" + rs.getDate("birthday")
			+ "\t" + rs.getDouble("money"));
	    }
	    while (rs.previous()) {
		System.out.println(rs.getInt("id") + "\t"
			+ rs.getString("name") + "\t" + rs.getDate("birthday")
			+ "\t" + rs.getDouble("money"));
	    }
	    //指定滚动到哪行
	    rs.absolute(3);
	   
	    
	} catch (SQLException e) {
	    e.printStackTrace();
	}
    }
2
0
分享到:
评论

相关推荐

    JAVA100例之实例55 可滚动结果集

    总结一下,"JAVA100例之实例55 可滚动结果集"主要展示了如何在Java中通过JDBC创建和使用可滚动的结果集,以及如何利用其导航方法在结果集中自由移动。了解和掌握这一技术对于开发复杂的数据库应用是非常有帮助的,...

    JDBCJDBC高级应用

    - JDBC2.0 引入了三种结果集类型:只可向前滚动、滚动不敏感和滚动敏感。默认类型是只可向前滚动,即 `ResultSet.TYPE_FORWARD_ONLY`。滚动不敏感的 `ResultSet.TYPE_SCROLL_INSENSITIVE` 允许任意方向滚动,但不会...

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    最直接的方法是在创建`Session`时指定查询结果集为可滚动类型(scrollable)。这可以通过在Hibernate配置文件中设置`hibernate.connection.autocommit`属性为`false`,并在查询前手动设置事务,然后通过`Session`的`...

    Hibernate可选配置大全

    - **功能**:启用JDBC可滚动结果集。 - **取值**:`true`或`false`,默认由Hibernate自动决定。 通过深入理解上述配置项的功能和用途,开发者可以更加灵活地调整Hibernate的行为,满足特定项目的需求,从而提高应用...

    只进结果集不支持请求的操作的“解决方法

    例如,在Java环境下使用JDBC API处理SQL Server数据库时,如果试图对一个非可滚动的结果集执行`absolute`等方法,将会触发`com.microsoft.sqlserver.jdbc.SQLServerException`异常。这种异常往往发生在开发者期望的...

    hibernate[1].cfg.xml中配置信息详解

    **用途**:启用或禁用JDBC可滚动结果集的使用。此配置项对于某些高级查询非常有用。 **取值**:`true`或`false`。 ##### 6. `hibernate.jdbc.use_streams_for_binary` **用途**:启用或禁用使用流来读写二进制或...

    jdbc2000,jdbc2005

    3. **结果集的滚动和分页(Scrollable Result Sets and Pagination)**:开发者可以前后移动结果集,实现分页查询,提升用户体验。 4. **数据源(DataSources)**:通过JNDI(Java Naming and Directory Interface)...

    JDBC数据库编程实验

    (3)掌握可滚动和可更新的结果集的基本操作方法; (4)理解JDBC中实现事务处理的基本方法; (5)理解数据库连接池的基本原理和思想,学会在tomcat服务器中配置数据库连接池,并掌握从连接池中获取连接的基本方法...

    JDBC2.0新功能

    但在JDBC 2.0中,通过`ResultSet.TYPE_SCROLL_SENSITIVE`和`ResultSet.TYPE_SCROLL_INSENSITIVE`选项,开发者可以创建可滚动的结果集。这使得开发人员可以在结果集中前后移动,甚至直接跳转到特定行。例如,使用`...

    sqljdbc4.jar, sqljdbc41.jar, sqljdbc42.jar三个包

    它引入了新的功能,如结果集的滚动和定位,以及改进的日期和时间类型处理。 3. **sqljdbc42.jar**: 最后,sqljdbc42.jar是针对Java 8及更高版本的,它遵循JDBC 4.2规范。此版本增加了对JSON数据类型的支持,这是...

    Dm7JdbcDriver16.jar Dm7JdbcDriver17.jar Dm7JdbcDriver18.jar

    同时,达梦JDBC驱动也支持结果集的滚动、定位和关闭等操作。 8. **元数据查询**: 可以通过DatabaseMetaData对象获取关于数据库、表、列、索引等元数据信息,帮助开发者更好地理解数据库结构。 9. **异常处理**:...

    JDBC与Java数据库编程

    - **JDBC 2.0**:引入了可滚动结果集、可更新结果集、批量更新等功能,增强了性能调整能力,并且分为核心API和可选包API两个部分。 - **JDBC 3.0**:增加了保存点功能,改进了连接池管理,并提供了一个迁移路径,...

    JDBC与java数据库编程

    - **JDBC 2.0:** 引入了可滚动和可更新的结果集、批量更新等功能。 - **JDBC 3.0:** 添加了保存点功能,增强了连接管理和数据库迁移的支持。 - **JDBC 4.0:** 支持自动加载驱动程序、新的SQL类型支持(如RowId和...

    JDBC编程代码示例

    基于MysqlJDBC编程代码示例,包括配置文件读取,连接对象的创建,查询,增加,修改,元数据的使用方法,图片数据数据库存储读取,存储过程的SQL创建语句和java使用存储过程进行增删改查的调用...可滚动结果集的使用方法

    各种数据库的jdbc(mysql,orcal ,derby,hive,postgresql,monetdb-jdbc)

    MySQL JDBC支持事务处理、预编译的SQL语句(PreparedStatement)以及结果集的滚动和分页。 2. **Oracle JDBC**: Oracle数据库是企业级的数据库系统,提供了强大的功能和高度的可扩展性。Oracle JDBC驱动分为 Thin...

    jdbc问题集收藏总结

    - `ResultSet`是一个可滚动的记录集合,它可以通过调用`Statement`或`PreparedStatement`的`executeQuery()`方法来获取。 - 每次调用`next()`方法都会将游标移动到结果集中的下一行。如果当前行是最后一行之后的...

    jdbc api tutorial and reference

    - **结果集的滚动**:可滚动的结果集允许前后移动,甚至定位到特定行。 - **结果集的并发更新**:对于支持并发的ResultSets,可以在不同事务中修改数据。 6. **数据库元数据** - **DatabaseMetaData对象**:提供...

    Database Programming with JDBC and JAVA

    "滚动结果集"和"批处理"章节则进一步扩展了JDBC的功能,滚动结果集允许开发者在结果集中向前或向后移动,而批处理则提高了批量插入或更新的效率,减少了与数据库的交互次数。 总的来说,《数据库编程与JDBC和JAVA》...

    Java_JDBC由浅入深

    13.1 可滚动结果集 70 13.2 分页技术 72 13.3 可更新结果集 73 第十四节 编写一个简单的数据库连接池 74 14.1 为什么要使用数据库连接池 74 14.2 数据库连接池雏形 74 14.2 数据库连接池优化 77 14.2.1 对线程池加锁...

Global site tag (gtag.js) - Google Analytics