33岁改行做网站建设,找段子的各大网站,西安广告公司前十名,网站建设平台方案jdbc中ResultSet在jdk 5.0以后默认都是可滚动的#xff0c;不可更新的。可滚动的意思是我们可以调用absolute()#xff0c;previous(), first()等操作来更新结果集中的指针位置。当我们需要结果集可更新的时候#xff0c;可以设置它的值为ResultSet.CONCUR_UPDATABLE#…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 irownum;i0;i--){//指针移动到第i条记录rs.absolute(i);System.out.println(sno:rs.getInt(1)\tsnamers.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();}}}}