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");
}
}
可滚动 ,可更新的 结果集
最新推荐文章于 2017-09-26 14:45:26 发布