可滚动 ,可更新的 结果集


package com.enhance.jdbc;

import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Properties;

public class ResutSetTest {

private String driver;
private String url;
private String user;
private String pass;
private Connection conn;
private ResultSet rs;
private PreparedStatement pstmt;
public void initParam(String paramFile) throws Exception{
Properties prop=new Properties();
prop.load(new FileInputStream(paramFile));
driver=prop.getProperty("driver");
url=prop.getProperty("url");
user=prop.getProperty("user");
pass=prop.getProperty("pass");
}
//ResultSetType:控制ResulSet的类型
//ResultSet.TYPE_FORWARD_ONLY :控制指针只能向前移动 (jdk1.4的默认值)
//ResultSet.TYPE_SCROLL_INSENSITIVE :指针可以自由移动,但底层数据改变不会影响ResultSet的内容
//ResultSet.TYPE_SCROLL_SENSITIVE :指针可以自由移动,而且 底层数据改变会影响ResultSet的内容

//ResultSetConcurrency:控制ResultSet的并发类型
//ResultSet.CONCUR_READ_ONLY :指示ResultSet是只读的并发模式 (默认)
//ResultSet.CONCUR_UPDATABLE :指示ResultSet是可更新的并发模式
public void query(String sql) throws Exception{

try{
Class.forName(driver);
conn=DriverManager.getConnection(url,user,pass);

Statement stmt=conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);

//加入参数设定 后 ,得到一个可自由滚动 和 可以修改 pstmt
pstmt=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
//ResultSet.TYPE_FORWARD_ONLY
//ResultSet.TYPE_SCROLL_INSENSITIVE
//ResultSet.TYPE_SCROLL_SENSITIVE

rs=pstmt.executeQuery();

//定位到最后
rs.last();
int rowCount=rs.getRow();
ResultSetMetaData rsmd=rs.getMetaData();
int columnCount=rsmd.getColumnCount();
for (int j = rowCount; j >0; j--) {
rs.absolute(j); //跳到指定的行
for(int i=0;i<columnCount;i++){
System.out.print(rsmd.getColumnName(i+1)+"---\t--"+rsmd.getColumnType(i+1)+"---\t--"+rs.getString(i+1)+"\t----|-");
}
//进行修改
rs.updateString(2, "飞天猪"+j);
rs.updateRow(); //提交修改

System.out.println();
}
}finally{
if(rs!=null)
rs.close();
if(pstmt!=null)
pstmt.close();
if(conn!=null)
conn.close();
}

}

public static void main(String[] args) throws Exception{
ResutSetTest rst=new ResutSetTest();
rst.initParam("src/mysql.ini");
rst.query("select * from my_test");

}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值