关于JDBC(四)--- 可滚动和可更新结果集
来源:互联网 发布:淘宝高中教学视频 编辑:程序博客网 时间:2024/06/06 02:39
在默认情况下,结果集是不可以滚动和不可以更新的。要得到一个可滚动的结果集,在生成Statement或PreparedStatement时,应预先通知conn
Statement stat = conn.createStatement(type, sql);
PreparedStatement ps =conn.prepatedStatement(sql, type, concurrency);
type值为TYPE_FORWARD_ONLY(不能滚动)、TYPE_SCROLL_INSENSITIVE(可以滚动,但对数据库变化不敏感)、TYPE_SCROLL_SENSITIVE(可滚动,对数据库变化敏感)
concurrency的值为CONCUR_READ_ONLY(结果集不能更新数据库<默认值>)、CONCUR_UPDATABLE(结果集可更新数据库)
并非所有的数据库驱动程序都支持可滚动和可更新的结果集,我们可以使用DatabaseMetaDate类中的supportsResultSetType和supportsResultSetConcurrency方法,获得使用的驱动程序时,某个数据库究竟支持哪些结果集类型和哪些并发模式。
如果希望编辑结果集中的数据,并将结果集上的数据变更自动反应到数据库中,那么就得使用可更新的结果集。可更新的结果集并不一定是可滚动的。
并非所有的查询都会返回可更新的结果集。如果查询涉及多个表格的连接操作,那么它所产生的结果集将是不可以更新的。如果查询只涉及一个表格,或在查询时是使用主键连接多个表格的,那么它所产生的结果集将是可更新的结果集。可以调用ResultSet类中的getConcurrent方法来确定结果集是不是可以更新。
与ResultSet中的getXxx方法相同的是,该类中也有UpdateXxx方法,该类方法只是改变结果集中的行值,而非数据库中的值。当更新完行中的字段值后,必须调用updateRow方法,将当前行中的所有信息发送给数据库;如果没有调用updateRow方法就将光标移动到其它行上,那么所有的更新信息都将被行集丢弃,而且不会传递给数据库。
ResultSet类中的updateRow、insertRow和deleteRow方法的执行效果等同于SQL命令中的UPDATE、INSERT和DELETE。但是如果要更新一个结果集中的数据,执行UPDATE语句要比建立一个查询,然后一边遍历一边修改数据显得高效的多。
- 关于JDBC(四)--- 可滚动和可更新结果集
- JDBC可滚动和可更新结果集
- JDBC之处理可滚动的结果集和可更新的结果集
- JDBC 如何使用可滚动 可更新结果集
- JDBC-结果集的特性(是否可滚动、是否敏感、是否可更新)
- jdbc可滚动结果集
- JDBC 可滚动结果集
- ResultSet可滚动和可更新的结果集/
- jdbc 可更新结果集
- 可滚动、可更新的结果集(转)
- jdbc 可滚动的结果集,可更新例子学习记录
- j2ee-规范-jdbc-可滚动结果集
- jdbc 可更新的结果集
- JDBC学习之路(八)可滚动结果集和数据分页
- 学习之路3----ResultSet可滚动和可更新的结果集
- java数据库编程——可滚动和可更新的结果集
- 可滚动结果集
- 可滚动结果集
- Ubuntu 12.04安装QQ2012
- NSTimer详解
- C语言文件编译链接的过程小问题1--extern结构体和函数
- nc扫描机器端口
- 计算日期,天数,星期几的小例子
- 关于JDBC(四)--- 可滚动和可更新结果集
- 做好电商产品运营的10个立足点
- maven命令行使用及生命周期详解
- sina kanyun 应用api-client使用问题 修改
- 《怪诞行为学1》给我的启发(一)
- C/C++ 语言中的表达式求值
- CodeIgniter 发送邮件(smtp)
- Linux+mysql双机配置文档
- html5动手玩之如何与webserver通信