jdbc 可更新结果集
来源:互联网 发布:淘宝旗舰店如何开 编辑:程序博客网 时间:2024/05/16 14:59
jdbc中ResultSet在jdk 5.0以后默认都是可滚动的,不可更新的。可滚动的意思是我们可以调用absolute(),previous(), first()等操作来更新结果集中的指针位置。
当我们需要结果集可更新的时候,可以设置它的值为ResultSet.CONCUR_UPDATABLE,默认是ResultSet.CONCUR_READ_ONLY。
当我们在连接的是oracle数据库时,如果查询的sql语句是select * from 表名的话,那么oracle默认我们是以只读方式访问表,所以我们程序设置为可更新的结果集,也是没有任何用处的,需要select 字段名..... from 表名,才能调用可更新的结果集。
下面我们演示 更新结果集的操作,把表的sname列,更新为“姓名”+i。
package com.shizhan.main;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.shizhan.util.DatabaseUtil;public class TestResult {/** * @param args */public static void main(String[] args) { Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;//当操作oracle数据库的时候,如果设置结果集是可更新的,则sql语句设置为select *from 表名,是无法更新的,需要设置select//字段1,字段2.。。from表名String sql ="select sno,sname from student";try {conn = DatabaseUtil.getConnection();//ResultSet.TYPE_SCROLL_INSENSITIVE结果集可滚动//ResultSet.CONCUR_UPDATABLE结果集可更新ps = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);rs = ps.executeQuery();//指针移动到最后rs.last();//返回当前的行号int rownum = rs.getRow();for(int i=rownum;i>0;i--){//指针移动到第i条记录rs.absolute(i);System.out.println("sno:"+rs.getInt(1)+"\t"+"sname"+rs.getString(2));//修改第二列的值rs.updateString(2,"姓名"+i);//提交修改,更新列rs.updateRow();}} catch (SQLException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}finally{DatabaseUtil.close(rs);DatabaseUtil.close(ps);DatabaseUtil.close(conn);}}}
package com.shizhan.util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DatabaseUtil { static Connection connection = null;static String driver = "oracle.jdbc.driver.OracleDriver";static String url = "jdbc:oracle:thin:localhost:1521:orcl";static String username ="scott";static String password ="tiger";public static Connection getConnection() throws Exception{Class.forName(driver);connection = DriverManager.getConnection(url,username,password);return connection;}public static void close(Connection conn) {//关闭连接对象if(conn != null) {//如果conn连接对象不为空try {conn.close();//关闭conn连接对象对象} catch (SQLException e) {e.printStackTrace();}}}public static void close(PreparedStatement pstmt) {//关闭预处理对象if(pstmt != null) {//如果pstmt预处理对象不为空try {pstmt.close();//关闭pstmt预处理对象} catch (SQLException e) {e.printStackTrace();}}}public static void close(Statement pstmt) {//关闭预处理对象if(pstmt != null) {//如果pstmt预处理对象不为空try {pstmt.close();//关闭pstmt预处理对象} catch (SQLException e) {e.printStackTrace();}}}public static void close(ResultSet rs) {//关闭结果集对象if(rs != null) {//如果rs结果集对象不为nulltry {rs.close();//关闭rs结果集对象} catch (SQLException e) {e.printStackTrace();}}}}
- jdbc 可更新结果集
- jdbc 可更新的结果集
- JDBC可滚动和可更新结果集
- JDBC 如何使用可滚动 可更新结果集
- 在JDBC中处理可更新的结果集
- Java JDBC 学习笔记 - 可更新的结果集
- JDBC之处理可滚动的结果集和可更新的结果集
- jdbc可滚动结果集
- JDBC 可滚动结果集
- jdbc 可滚动的结果集,可更新例子学习记录
- 关于JDBC(四)--- 可滚动和可更新结果集
- JDBC-结果集的特性(是否可滚动、是否敏感、是否可更新)
- 【学习摘记】马士兵JDBC技术_课时15_JDBC处理可更新的结果集
- j2ee-规范-jdbc-可滚动结果集
- JDBC 可更新数据集 CONCUR_UPDATABLE
- 可滚动、可更新的结果集(转)
- ResultSet可滚动和可更新的结果集/
- [Java] JDBC 07 处理可滚动的结果集
- 【Silverlight】Bing Maps开发应用与技巧一:地图打点与坐标控件(CoordControl)
- 《计算机教育》专题报道:“米老师”其人
- extjs使利用cookie换皮肤,华丽转身!
- 亲和串
- 总结两种创建匿名管道来截获控制台命令的方法
- jdbc 可更新结果集
- 在ASP.NET中实现ajax
- 继扎扎之后 苹果CEO入驻图片社交网站The Fancy
- hibernate学习
- const和static区别
- httpclient4 中文版帮助文档,最新官方版翻译版(一)
- 暑假个人赛3 A题
- 《计算机教育》专题报道:“狼”来了:十名提高班毕业生寄语
- 读取json数据