欢迎来到天天文库
浏览记录
ID:48168999
大小:312.50 KB
页数:22页
时间:2020-01-16
《第16章 JDBC的高级应用.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第16章JDBC高级应用JSP基础知识在前面的学习中,总有一个问题,查询所获得的结果集只能使用next方法将游标移到下一条记录。但是在某些情况下需要游标能够在结果集中前后移动,这时就需要使用可滚动的结果集了。可滚动的结果集不仅支持向前浏览内容,而且还支持向后浏览内容的能力。16.1可滚动的结果集可滚动与不可滚动结果集的比较:1、之所以在默认的情况下提供不可滚动的结果集,是因为当开发人员从不可滚动的结果集中取出数据后,取出的数据将会从结果集中释放掉,这样就可以大大的节约系统资源,从而提高效率。因此,对于不可滚动结果集,数据只能取出一次。2、而对于可滚
2、动结果集,只要没有被关闭,就要存储所有的数据以备滚动的需要。这在需要滚动的情况下提供了方便,但也付出了代价-----需要更多的系统资源。因此,在实际开发中要注意只在必须使用可滚动结果集的情况下使用,没有特殊需求尽量避免使用。16.1可滚动的结果集16.1可滚动的结果集默认情况下,结果集是不可滚动的和不可更新的。为了从查询中获得可滚动的结果集,必须使用如下方法:Statementstat=conn.createStatement(type,concurrency);或者:PreparedStatementstat=conn.prepareStatem
3、ent(command,type,concurrency);变量type来设置是否是可滚动的结果集,可以是以下几个ResultSet常量:TYPE_FORWARD_ONLY结果集不能滚动TYPE_SCROLL_INSENSITIVE结果集可以滚动,但对数据库变化不敏感。数据库查询生成结果集后发生了变化,结果集不发生变化。TYPE_SCROLL_SENSITIVE结果集可以滚动,且对数据库变化敏感16.1可滚动的结果集滚动不敏感的结果集通常对在结果集打开时所作的变化不敏感。滚动敏感的结果集对在结果集打开时所作的变化就很敏感。concurrency的可
4、能值是:CONCUR_READ_ONLY结果集不能用于更新数据库(默认值)CONCUR_UPDATABLE结果集可以用于更新数据库16.1可滚动的结果集结果集的相关方法如下:rs.previous();rs.next();rs.relative(n);向前和向后移动多行,n为正数,光标向前移动;n为负数,光标向后移动;n为零不起作用。rs.absolute(n);将游标设置到指定的行号上。intcurrentRow=rs.getRow();返回当前行的行号。第一行的行号为1。如果返回值为0,那么当前游标不在任何行上。实例:Test_ResultSe
5、t_scroll01.javaTest_ResultSet_scroll02.java16.1可滚动的结果集16.2可更新的结果集如果想更新结果集中的数据,并且将结果集上的数据变更自动反映到数据库中,那么就必须使用可更新的结果集,可更新的结果集不一定是可滚动的,但通常是可滚动的。如下:Statementstat=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);注意:即使使用了CONCUR_UPDATABLE参数来创建Statemen
6、t,得到的结果集也不一定是“可更新的”。如果记录集来自合并查询,这样的结果集就可能是不可更新的。可以使用ResultSet类的getConcurrency()方法来确定是否为可更新结果集。intCONCUR_READ_ONLY=1007;intCONCUR_UPDATABLE=1008;16.2可更新的结果集importjava.sql.*;publicclassTest_ResultSet_scroll01{publicstaticvoidmain(String[]args){//声明Connection引用Connectioncon=null;
7、try{//加载JDBC-ODBC桥连接驱动类Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();//创建数据库连接con=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=jxgl","sa","811103");//创建能够生成可滚动结果集的StatementStatementst=con.createStatement(ResultSet.TYPE
8、_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSetrs=st.
此文档下载收益归作者所有