`
点点与麦兜
  • 浏览: 9521 次
  • 性别: 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
分享到:
评论

相关推荐

    JDBC数据库编程实验

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

    JDBC编程代码示例

    基于MysqlJDBC编程代码示例,包括配置文件读取,连接对象的创建,查询,增加,修改,元数据的使用方法,图片数据数据库存储读取,存储过程的SQL创建语句和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 对线程池加锁...

    JDBC 3.0数据库开发与设计

    3.6.4 可滚动结果集 3.6.5 可更新结果集 3.7 SQL和Java数据类型转换 3.8 本章小结 第4章 JDBC 3.0 API数据库开发高级操作 4.1 预编译语句 4.1.1 PreparedStatement对象的创建 4.1.2 传递IN参数 4.1.3 传递...

    JDBC笔记 JDBC笔记

    同时也有一些高级的处理,比如批处理更新、事务隔离和可滚动结果集等。 ② javax.sql 扩展功能。它主要为数据库方面的高级操作提供了接口和类。如为连接管理、分布式事务和旧有的连接提供了更好的抽象,它引入了...

    JDBC详解HTML-JDBC.pp

    3、创建可滚动、更新的记录集 1&gt;.创建Statement时指定参数:该Statement取得的ResultSet就是可滚动的 Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE, ResultSet.CONCUR_READ_ONLY); 2&gt;....

    JDBC连接操作Oracle及Mysql详解

    JDBC连接Oracle 11g及Mysql5,涉及传参,反射,读取属性文件,预处理,(预处理)批处理,带参数的存储过程,事务处理,可滚动的结果集,可更新的结果集

    JDBC API教程与参考手册part3

    然后,本书转向更高级的主题,集中介绍JDBC 3.0API的一些高级功能,如可滚动和可更新的结果集、批量更新、SQL99数据类型、定制映射、保存点、语句池以及自动生成键等。 除了深入介绍JDBC元数据API之外,本书还给出了...

    JDBC API教程与参考手册part4

    然后,本书转向更高级的主题,集中介绍JDBC 3.0API的一些高级功能,如可滚动和可更新的结果集、批量更新、SQL99数据类型、定制映射、保存点、语句池以及自动生成键等。 除了深入介绍JDBC元数据API之外,本书还给出了...

    JDBC API教程与参考手册part2

    然后,本书转向更高级的主题,集中介绍JDBC 3.0API的一些高级功能,如可滚动和可更新的结果集、批量更新、SQL99数据类型、定制映射、保存点、语句池以及自动生成键等。 除了深入介绍JDBC元数据API之外,本书还给出了...

    jtds.jdbc.Driver ,连接 SQL Server 所需驱动

    jTDS是一个开放源代码的100%纯Java实现的JDBC3.0驱动, 它用于连接 Microsoft SQL Server(6.5,7,...jTDS完全与JDBC3.0兼容,支持只向前和可滚动/可更新的结果集(ResultSets),并且支持完全独立的并行Statements

    JDBC编程resultset游标控制

    JDBC通信原理 JDBC驱动类型 JDBC构成 JDBC程序5步走 滚动的结果集 可更新的结果集 SQL数据类型对应的Java类型 事务及批量处理 行集、连接池、LDAP

    JDBC_MySQL&Oracle;源码

    JDBC连接MySQL;JDBC连接Oracle. 两部分源码,写的比较详细,包括对各种结果集进行的处理分类,包括PreparedStatement,CallableStatement,批处理Batch,运用事务处理,滚动结果集和更新结果集等

    Java数据库连接(JDBC)

    创建数据源 15.2 JDBC-ODBC桥接器 15.3 顺序查询 15.4 可滚动结果集 15.5 排序查询 15.6 模糊查询 15.7 随机查询 15.8 更新、添加、删除记录 15.9 预处理语句 15.10 数据库访问中的套接字技术

    JDBC-API-WEB.rar_JDBC api_JDBC web_jdeveloper_oracle jdbc A_web

    用Oracle JDeveloper 10g IDE基于JDBC API的Web开发的简单测试.[InsertData]文件夹完成数据...[updateTable]完成可被更新和滚动的纪录集;[bindQuery]实现PreparedStatement接口;[getDBInfo]实现DatabaseMeatData接口

    jtdsJDBC Driver

    JTDS完全与JDBC 3.0兼容,支持只向前的,和可滚动/可更新的结果集(ResultSets)中并行(完全独立)语句,并且可实施所有databasemetadata和resultsetmetadata方法。 文件有说明spring+hibernate+c3p0+jtds的配置

    jtds-1.2.jar

    jTDS完全与JDBC3.0兼容,支持只向前和可滚动/可更新的结果集(ResultSets),并且支持完全独立的并行Statements, 而且实现了所有的数据库元数据(Database MetaData)和结果集元数据(ResultSet MetaData)方法。

    Java数据库查询结果的输出

     如果软件环境支持JDBC2.0,可直接利用rs.prevoius()和rs.next()获得记录,然后通过类JTextField中的setText()方法,显示出各个字段值。  如果不支持JDBC2.0,则可利用向量Vector按行取出JTable中数据。自定义一...

    关于java数据库基本操作

    1、java数据库操作基本流程2、几个常用的重要技巧:·可滚动、更新的记录集·批量更新·事务处理java数据库操作基本流程:取得数据库连接-执行sql语句-处理执行结果-释放数据库连接l、取得数据库连接1)用DriverManager...

    Hibernate中的query 分页.doc

    答:1.scroll是用JDBC2.0的可滚动结果集实现;query.setMaxResults();query.setFirstResult()是数据库SQL语句实现。 2.你说是在数据库就分页好呢?还是把结果集都取到内存再分页好呢?(应该是在数据库就分了好些吧...

Global site tag (gtag.js) - Google Analytics