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();
}
}
分享到:
相关推荐
总结一下,"JAVA100例之实例55 可滚动结果集"主要展示了如何在Java中通过JDBC创建和使用可滚动的结果集,以及如何利用其导航方法在结果集中自由移动。了解和掌握这一技术对于开发复杂的数据库应用是非常有帮助的,...
- JDBC2.0 引入了三种结果集类型:只可向前滚动、滚动不敏感和滚动敏感。默认类型是只可向前滚动,即 `ResultSet.TYPE_FORWARD_ONLY`。滚动不敏感的 `ResultSet.TYPE_SCROLL_INSENSITIVE` 允许任意方向滚动,但不会...
最直接的方法是在创建`Session`时指定查询结果集为可滚动类型(scrollable)。这可以通过在Hibernate配置文件中设置`hibernate.connection.autocommit`属性为`false`,并在查询前手动设置事务,然后通过`Session`的`...
- **功能**:启用JDBC可滚动结果集。 - **取值**:`true`或`false`,默认由Hibernate自动决定。 通过深入理解上述配置项的功能和用途,开发者可以更加灵活地调整Hibernate的行为,满足特定项目的需求,从而提高应用...
例如,在Java环境下使用JDBC API处理SQL Server数据库时,如果试图对一个非可滚动的结果集执行`absolute`等方法,将会触发`com.microsoft.sqlserver.jdbc.SQLServerException`异常。这种异常往往发生在开发者期望的...
**用途**:启用或禁用JDBC可滚动结果集的使用。此配置项对于某些高级查询非常有用。 **取值**:`true`或`false`。 ##### 6. `hibernate.jdbc.use_streams_for_binary` **用途**:启用或禁用使用流来读写二进制或...
3. **结果集的滚动和分页(Scrollable Result Sets and Pagination)**:开发者可以前后移动结果集,实现分页查询,提升用户体验。 4. **数据源(DataSources)**:通过JNDI(Java Naming and Directory Interface)...
(3)掌握可滚动和可更新的结果集的基本操作方法; (4)理解JDBC中实现事务处理的基本方法; (5)理解数据库连接池的基本原理和思想,学会在tomcat服务器中配置数据库连接池,并掌握从连接池中获取连接的基本方法...
但在JDBC 2.0中,通过`ResultSet.TYPE_SCROLL_SENSITIVE`和`ResultSet.TYPE_SCROLL_INSENSITIVE`选项,开发者可以创建可滚动的结果集。这使得开发人员可以在结果集中前后移动,甚至直接跳转到特定行。例如,使用`...
- **JDBC 2.0**:引入了可滚动结果集、可更新结果集、批量更新等功能,增强了性能调整能力,并且分为核心API和可选包API两个部分。 - **JDBC 3.0**:增加了保存点功能,改进了连接池管理,并提供了一个迁移路径,...
同时,达梦JDBC驱动也支持结果集的滚动、定位和关闭等操作。 8. **元数据查询**: 可以通过DatabaseMetaData对象获取关于数据库、表、列、索引等元数据信息,帮助开发者更好地理解数据库结构。 9. **异常处理**:...
它引入了新的功能,如结果集的滚动和定位,以及改进的日期和时间类型处理。 3. **sqljdbc42.jar**: 最后,sqljdbc42.jar是针对Java 8及更高版本的,它遵循JDBC 4.2规范。此版本增加了对JSON数据类型的支持,这是...
基于MysqlJDBC编程代码示例,包括配置文件读取,连接对象的创建,查询,增加,修改,元数据的使用方法,图片数据数据库存储读取,存储过程的SQL创建语句和java使用存储过程进行增删改查的调用...可滚动结果集的使用方法
MySQL JDBC支持事务处理、预编译的SQL语句(PreparedStatement)以及结果集的滚动和分页。 2. **Oracle JDBC**: Oracle数据库是企业级的数据库系统,提供了强大的功能和高度的可扩展性。Oracle JDBC驱动分为 Thin...
- `ResultSet`是一个可滚动的记录集合,它可以通过调用`Statement`或`PreparedStatement`的`executeQuery()`方法来获取。 - 每次调用`next()`方法都会将游标移动到结果集中的下一行。如果当前行是最后一行之后的...
- **结果集的滚动**:可滚动的结果集允许前后移动,甚至定位到特定行。 - **结果集的并发更新**:对于支持并发的ResultSets,可以在不同事务中修改数据。 6. **数据库元数据** - **DatabaseMetaData对象**:提供...
"滚动结果集"和"批处理"章节则进一步扩展了JDBC的功能,滚动结果集允许开发者在结果集中向前或向后移动,而批处理则提高了批量插入或更新的效率,减少了与数据库的交互次数。 总的来说,《数据库编程与JDBC和JAVA》...
13.1 可滚动结果集 70 13.2 分页技术 72 13.3 可更新结果集 73 第十四节 编写一个简单的数据库连接池 74 14.1 为什么要使用数据库连接池 74 14.2 数据库连接池雏形 74 14.2 数据库连接池优化 77 14.2.1 对线程池加锁...