可滚动的结果集
平常我们都是把结果集rs.next(); //这个结果集不是可滚动的结果集
可滚动的结果集的真正含义是可以向前滚rs.previous();
jdbc的规范要求,如果你想要结果集向前滚就要设置参数
conn.createstatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//也就是在车子里面装一封信,告诉对方拿一个可以滚动的结果集过来
但是如果你没这么创建就不能保证可以向前滚,有可能可以向前滚
不仅仅是向前滚哦。。
rs.absoulte(5); //定位到第5条数据
rs.afterLast(); //移动到最后一行的后面去,那么要向前移动才能读数据,这样方便我们从后往前读
rs.beforeFirst();//同理
rs.first(); //判断当前行是否是第一行
我们可以根据这个来翻页,等于是在内存中分页,效率低,翻页,没办法而为之但是有些数据库不支持
rs.absolute(150);
int i = 0;
while(rs.next()&&i<10)){
i++;
rs.getObject(1);
}
可更新的结果集 ---了解下。。因为我们用更新语句去做可能会更加明确,这样可读性差
st = conn.createstatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = st.executeQuery("xxxx");
while(rs.next()){
if(rs.getString("name").equals("lisi")){
rs.updateFloat("money",300f);
rs.updateRow();
}
}
ResultSet.TYPE_SCROLL_SENSITIVE中的SENSITIVE的意思是他可以动态感知数据库中的变化,如果你在查询的时候别人修改了,他能知道的,但是他拿一条数据就要去数据库里面查一次,这样效率地下,而且这些参数的设置并不是每个数据库驱动都支持的,mysql就不支持这个
ResultSet.TYPE_SCROLL_INSENSITIVE的意思是不能感知数据库的变化
分享到:
相关推荐
jTDS是一个开放源代码的100%纯Java实现的JDBC3.0驱动, 它用于连接 Microsoft SQL Server(6.5,7,...jTDS完全与JDBC3.0兼容,支持只向前和可滚动/可更新的结果集(ResultSets),并且支持完全独立的并行Statements
- **可更新结果集:** 允许修改结果集中的数据,并将更改同步到数据库。 ### JDBC版本发展 - **JDBC 1.x:** 最初版本,提供了基本的数据存储架构,包括核心接口。 - **JDBC 2.0:** 引入了可滚动和可更新的结果集...
结果集有多种导航模式,包括向后只读、向前只读和可滚动等。 7. 事务管理:JDBC支持ACID(原子性、一致性、隔离性和持久性)事务特性。通过Connection对象的setAutoCommit()方法可以控制自动提交,commit()和...
- **JDBC 2.0**:引入了可滚动结果集、可更新结果集、批量更新等功能,增强了性能调整能力,并且分为核心API和可选包API两个部分。 - **JDBC 3.0**:增加了保存点功能,改进了连接池管理,并提供了一个迁移路径,...
(3)掌握可滚动和可更新的结果集的基本操作方法; (4)理解JDBC中实现事务处理的基本方法; (5)理解数据库连接池的基本原理和思想,学会在tomcat服务器中配置数据库连接池,并掌握从连接池中获取连接的基本方法...
此外,还有一些高级处理,如批处理更新、事务隔离和可滚动结果集等。 2. **javax.sql**:提供了一些高级接口和类,用于更复杂的数据库操作,如连接管理、分布式事务和旧有连接的改进等。主要包含以下对象和接口: ...
- JDBC 2.0引入了许多增强功能,如批处理、连接池、RowSet对象、可滚动和可更新的结果集等。 - 示例代码可能需要与JDK版本匹配,JDBC 1.0示例适用于JDK 1.1,而JDBC 2.0示例则需在JDK 1.2及以上环境中运行。 5. *...
4. **游标的使用**:理解不同类型的游标,如只读、可滚动和可更新游标。 5. **数据库连接的自动重连策略**:当数据库连接因网络问题中断时,如何实现自动恢复连接。 6. **大数据量处理**:如何使用流式结果集...
还支持一些高级功能,如批处理更新、事务隔离和可滚动结果集。 - **`javax.sql`**:提供对数据库高级操作的支持,如连接池管理、分布式事务处理等,适用于企业级应用的复杂场景。 #### 四、关键接口与类 - **`...
4. **ResultSet的可滚动性和可更新性**:允许向上滚动结果集,并对结果进行修改。 5. **批处理**:一次提交多个SQL语句,提高性能。 6. **高级数据类型**:支持更多数据库特定的复杂数据类型。 **JDBC编程的基本...
此外,还包括一些高级处理,如批处理更新、事务隔离和可滚动结果集等。 - **Connection**:表示与特定数据库的连接,可通过`getMetaData`方法获得数据库信息、支持的SQL语法等。 - **Driver**:每个驱动程序类必须...
jTDS完全与JDBC3.0兼容,支持只向前和可滚动/可更新的结果集(ResultSets),并且支持完全独立的并行Statements, 而且实现了所有的数据库元数据(Database MetaData)和结果集元数据(ResultSet MetaData)方法。
5. **游标**:JDBC支持向前只读和可滚动的游标,允许在结果集中向前后移动。 **三、JDBC优化策略** 1. **减少数据库连接**:及时关闭不必要的连接,避免资源浪费,使用连接池管理连接。 2. **缓存...
此外,还包括一些更高级的操作,比如批处理更新、事务隔离和可滚动结果集等功能。 2. **`javax.sql` 扩展功能**:这一包为高级数据库操作提供了接口和类,比如连接管理、分布式事务和对旧有连接的更好抽象。其中...
- **新特性**:增加了可滚动结果集、可更新结果集、批量更新等功能。 - **API分类**:分为核心API (`java.sql`包) 和可选包API (`javax.sql`包)。 **3.3 JDBC 3.0** - **新特性**:引入了保存点的概念,增强了对...
- **结果集类型**: ResultSet的类型有TYPE_FORWARD_ONLY、TYPE_SCROLL_INSENSITIVE和TYPE_SCROLL_SENSITIVE,分别代表只向前滚动、不可变的滚动和可变的滚动。 - **结果集并发**: CONCUR_READ_ONLY和CONCUR_...
- **可滚动和可更新的ResultSet**:在JDBC 2.0中,`ResultSet`支持向前和向后滚动,以及更新结果集的能力,增强了数据交互的灵活性。创建此类`ResultSet`需要使用特定的`Statement`构造函数,并设置适当的类型和并发...
这通过设置`Statement`的`ResultSetConcurrency`和`ResultSetType`属性实现,例如,`ResultSet.TYPE_SCROLL_INSENSITIVE`和`ResultSet.CONCUR_UPDATABLE`组合可以创建一个可滚动且可更新的结果集。 批处理更新...