JDK6笔记(5)----JDBC4(5)

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1557381 JDK6笔记(5)----JDBC4(5)  1、ResultSet接口你可以指定三种常量:1)TYPE_FORWARD_ONLY结果集游标只能从开始到最后进行前移,它不能后退。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1557381

JDK6笔记(5)----JDBC4(5)

 1、ResultSet接口你可以指定三种常量:
1)TYPE_FORWARD_ONLY
结果集游标只能从开始到最后进行前移,它不能后退。而且,结果集对数据源的改变不敏感。
2)TYPE_SCROLL_INSENSITIVE
结果集游标能前移和后移,也能跳转到应用程序指定的行。而且,结果集对数据源的改变不敏感。
3)TYPE_SCROLL_SENSITIVE
结果集游标能前移和后移,也能跳转到应用程序指定的行。在结果集打开时,结果集对于数据源的改变很敏感。它提供了面向数据的动态视图。
2、设置结果集的并行性
结果集有两种并行性:一是read-only(只读);二是updatable(可更新)。要查找你的JDBC驱动器是否支持结果集的并行性,可使用DatabaseMetaData.supportResultSetConcurrency()方法来查询。
ResultSet接口可指定两种常量:
1)CONCUR_READ_ONLY
指定结果集是只读的,不能进行动态更新;
2)CONCUR_UPDATABLE
指定结果集可动态更新。
3、设置结果集的持续性
结果集通常在事务处理完后就自动关闭了。在ResultSet接口中Connection.commmit有下面的常量:
1)HOLD_CURSORS_OVER_COMMIT
指定当Connection.commit调用时,结果集对象不关闭。此时,它将维持,直到程序调用Result.close方法来关闭。
2)CLOSE_CURSORS_AT_COMMIT
指定当Connection.commit出现后,就关闭ResultSet对象。
下面是使用结果集的例子:
//Look up the registered data source from JNDI
DataSource dsDataSource =(DataSource)ctx.lookup("jdbc/mydb");
//obtain a Connection object from the data source
Connection cConn=dsDataSource.getConnection("sa","password");
Statement sStatement=cConn.createStatement(
 ResultSet.CONCUR_UPDATABLE,
 ResultSet.TYPE_SCROLL_INSENSITIVE,
 ResultSet.CLOSE_CURSORS_AT_COMMIT);
ResultRest rsResults=sStatement.executeQuery("SELECT NAME, TEAM FROM PLAYERS");
//Though we hava not done anything to warrant a commit we put this here to show where the ResultSet
//would be closed
cConn.commit();
//Close the connection
cConn.close();

4、处理结果集的例子
Statement sStatement=cConn.createStatement(
 ResultSet.CONCUR_UPDATABLE,
 ResultSet.TYPE_SCROLL_INSENSITIVE,
 ResultSet.CLOSE_CURSORS_AT_COMMIT);
ResultSet rsResults=sStatement.executeQuery("SELECT NAME,TEAM,AGE, "+"RANK FROM PLAYERS");
//Move to the last row
rsResults.last();
//Update specific data in the row
rsResults.updateString(2,"Hornets");
rsResults.updateInt(3,27);
rsResults.updateLong(4,5021);
//Commit the changes to the row
rsResults.updateRow();
cConn.commit();
//close the connection
cConn.close();

5、插入、删除的例子
Statement sStatement=cConn.createStatement(ResultSet.CONCUR_UPDATABLE);
ResultSet rsResults=sStatement.executeQuery("SELECT NAME,TEAM,AGE,"+ "RANK FROM PLAYERS");
//Move to the fourth row
rsResults.absolute(4);
rsResults.deleteRow();
//Now let's insert a new row
rsResults.moveToInsertRow();
//Build data for new row
rsResults.updateString(1,"Ken Pratt");
rsResults.updateString(2,"Tigers");
rsResults.updateInt(3,32);
rsResults.updateLong(4,7521);
//Add the new row to the ResultSet
rsResults.insertRow();
//Move the cursor back the original position
rsResults.moveToCurrentRow();
//Commit changes
cConn.commit();
//Close the connection
cConn.close();

目录
相关文章
|
3月前
|
Java
JDK动态代理笔记整理
JDK动态代理笔记整理
|
6月前
|
Java 程序员
终于不慌内卷了,多亏阿里内部的并发图册+JDK源码速成笔记
并发编程 Java并发在近几年的面试里面可以说是面试热点,每个面试官面试的时候都会跟你扯一下并发,甚至是高并发。面试前你不仅得需要弄清楚的是什么是并发,还得搞清什么是高并发! 在这里很多小白朋友就会很疑惑:我工作又不用,为啥面试总是问?真就内卷卷我呗!(手动狗头)互联网内卷已经是现在的行业趋势,而且是不可逆的,这个大家也知道;但LZ要说的是,虽然简单地增删改查并不需要并发的知识,但是业务稍微复杂一点,你的技术水平稍微提升一点的话你就会知道,并发是我们Java程序员绕不开的一道坎。
33 0
|
9月前
|
Java 容器
Alibaba新产:“Java并发笔记”闪耀来袭,JDK源码奥义尽在其中
JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。 没有JDK的话,无法编译Java程序(指java源码.java文件),如果想只运行Java程序(指class或jar或其它归档文件),要确保已安装相应的JRE。
|
9月前
|
SQL 算法 Java
直击灵魂!美团大牛手撸并发原理笔记,由浅入深剖析JDK源码
并发编程这四个字想必大家最近都在网上看到过有很多的帖子在讨论。我们都知道并发编程可选择的方式有多进程、多线程和多协程。在Java中,并发就是多线程模式。而多线程编程也一直是一个被广泛而深入讨论的领域。如果遇到复杂的多线程编程场景,大多数情况下我们就需要站在巨人的肩膀上利用并发编程框架——JDK Concurrent包来解决相关线程问题。
|
10月前
|
Java 开发者 容器
先到先学!Alibaba甩出第四次更新的JDK源码高级笔记(终极版)
作为Java开发者,面试肯定被问过多线程。对于它,大多数好兄弟面试前都是看看八股文背背面试题以为就OK了;殊不知现在的面试官都是针对一个点往深了问,你要是不懂其中原理,面试就挂了。可能你知道什么是进程什么是线程,但面试官要是问你进程之间是如何通讯的?ConcurrentHashMap 和 HashTable有什么区别?为什么wait和notify方法要在同步块代码中调用?你答不上来就只能等通知了。。。
|
Java Linux
【笔记03】CentOS 安装 jdk
(1) 创建 softwarezgq 目录,用于存放软件安装包
117 0
【笔记03】CentOS 安装 jdk
|
SQL Java 数据库连接
JDK6笔记(5)----JDBC4
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1554793 JDK6...
963 0
|
SQL Java 数据库连接
JDK6笔记(5)----JDBC4(2)
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1555630 JDK6笔记(5)----JDBC4(2) 1、理解Statements有三种类型的Statements:1)Statements接口它通常用于只需不带参数的SQL语句。
642 0
|
SQL Java 数据库连接
JDK6笔记(5)----JDBC4(3)
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1556016 JDK6笔记(5)----JDBC4(3) 1、预准备语句的IN参数的pitfall当你用setter方法向IN参数传递值时要注意一些问题。
759 0
|
SQL Java 数据库连接
JDK6笔记(5)----JDBC4(4)
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1556449 JDK6笔记(5)----JDBC4(4) 1、利用批处理更新要提高性能,JDBC API提供了一个批处理更新方式,它允许你一次进行多种更新。
751 0