JDBC之处理可滚动的结果集和可更新的结果集
来源:互联网 发布:通知栏网络图标不见了 编辑:程序博客网 时间:2024/05/17 05:04
(一)ResultSet
表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
默认的 ResultSet
对象不可更新,仅有一个向前移动的光标。因此,只能迭代它一次,并且只能按从第一行到最后一行的顺序进行。但是,可以生成可滚动和/或可更新的ResultSet
对象。
ResultSet
接口提供用于从当前行获取列值的获取 方法(getBoolean
、getLong
等)。可以使用列的索引编号或列的名称获取值。一般情况下,使用列索引较为高效。
列从 1 开始编号。
Statement stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2"); // rs will be scrollable, will not show changes made by others, // and will be updatable
(二)ResultSet静态常量1、TYPE_FORWARD_ONLY:默认类型,指示光标只能向前移动的 ResultSet
对象的类型。
2、TYPE_SCROLL_INSENSITIVE:该常量指示可滚动并且通常受 ResultSet
底层数据更改影响的 ResultSet
对象的类型。
3、TYPE_SCROLL_SENSITIVE :该常量指示可滚动并且通常受 ResultSet
底层数据更改影响的 ResultSet
对象的类型。
4、CONCUR_READ_ONLY:该常量指示不可以更新的 ResultSet
对象的并发模式。 即只读
5、CONCUR_UPDATABLE:该常量指示可以更新的 ResultSet
对象的并发模式。 可以进行更改
(三)处理可滚动的结果集
import java.sql.*;public class TestScroll {public static void main(String args[]) {try {new oracle.jdbc.driver.OracleDriver();String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";Connection conn = DriverManager.getConnection(url, "scott", "tiger");Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); //设置结果集的状态ResultSet rs = stmt.executeQuery("select * from emp order by sal");rs.next();//将光标前移一行System.out.println(rs.getInt(1));rs.last(); //光标移到最后一行System.out.println(rs.getString(1));System.out.println(rs.isLast());System.out.println(rs.isAfterLast());System.out.println(rs.getRow());rs.previous(); //将光标移到该resultset对象的上一行System.out.println(rs.getString(1));rs.absolute(6); //将光标移动到该编号的resultSet对象System.out.println(rs.getString(1));rs.close();stmt.close();conn.close();} catch (SQLException e) {e.printStackTrace();}}}
import java.sql.*;public class TestUpdataRs { public static void main(String args[]){try{ new oracle.jdbc.driver.OracleDriver(); String url="jdbc:oracle:thin:@192.168.0.1:1521:SXT"; Connection conn=DriverManager.getConnection(url,"scott","tiger"); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rs=stmt.executeQuery("select * from emp2"); rs.next(); //更新一行数据 rs.updateString("ename","AAAA"); rs.updateRow(); //插入新行 rs.moveToInsertRow(); //将光标移动到插入行 rs.updateInt(1, 9999); rs.updateString("ename","AAAA"); rs.updateInt("mgr", 7839); rs.updateDouble("sal", 99.99); rs.insertRow(); //将插入行的内容插入到此resultset对象和数据库中 //将光标移动到新建的行 rs.moveToCurrentRow(); //删除行(光标不位于插入行上时,不能调用此方法) rs.absolute(5); rs.deleteRow(); //取消更新 //rs.cancelRowUpdates(); }catch(SQLException e){ e.printStackTrace(); } }}
(五)DataSource
1、作为DriverManager的替代,生成标准的Connection对象
2、连接池实现 (可以调高数据库的连接效率,提高系统的性能)
3、分布式事务实现 (生成一个 Connection
对象,该对象可用于分布式事务,大多数情况下总是参与连接池)
(六)RowSet
1、继承于ResultSet
2、支持断开的结果集
3、支持JavaBean标准
- JDBC之处理可滚动的结果集和可更新的结果集
- JDBC可滚动和可更新结果集
- ResultSet可滚动和可更新的结果集/
- [Java] JDBC 07 处理可滚动的结果集
- 在JDBC中处理可更新的结果集
- jdbc 可更新的结果集
- 学习之路3----ResultSet可滚动和可更新的结果集
- jdbc 可滚动的结果集,可更新例子学习记录
- JDBC-结果集的特性(是否可滚动、是否敏感、是否可更新)
- JDBC 如何使用可滚动 可更新结果集
- 可滚动、可更新的结果集(转)
- jdbc可滚动结果集
- JDBC 可滚动结果集
- 可滚动的结果集
- 可滚动的结果集
- jdbc 可更新结果集
- 关于JDBC(四)--- 可滚动和可更新结果集
- java数据库编程——可滚动和可更新的结果集
- Intellij idea解决tomcat报错:Error listenerStart.
- Common application properties
- SDK location not found. Define location with sdk.dir in the local
- java反射方法详解
- html之使用inline-block,div错位处理
- JDBC之处理可滚动的结果集和可更新的结果集
- openCV mingw+cmake编译的bug/error笔记
- 省级期刊发表要求
- python画图
- caffe-fcn-solver.py
- CDH中 Apache Kylin使用spark引擎构建Cube
- group_concat()函数运用
- java常用设计模式小结
- 原来钱还可以这样赚!0门槛,0难度,免费日加几百粉