第十二课时:JDBC 编程 (2)

示例:

import java.sql.*;

import java.util.*;

import java.io.*;

 

import static java.sql.ResultSet.*;

 

public class ResultSetTest

{

private String driver;

private String url;

private String user;

private String pass;

Connection conn;

PreparedStatement pstmt;

ResultSet rs;

public void initParam(String paramFile)throws Exception

{

//使用Properties类来加载属性文件

Properties props = new Properties();

props.load(new FileInputStream(paramFile));

driver = props.getProperty("driver");

url = props.getProperty("url");

user = props.getProperty("user");

pass = props.getProperty("pass");

}

 

 

public void query(String sql)throws Exception

{

try

{

//加载驱动

Class.forName(driver);

//获取数据库连接

conn = DriverManager.getConnection(url , user , pass);

//使用Connection来创建一个PreparedStatement对象

//传入控制结果集可滚动,可更新的参数。

pstmt = conn.prepareStatement(sql , ResultSet.TYPE_SCROLL_INSENSITIVE

, ResultSet.CONCUR_UPDATABLE);

rs = pstmt.executeQuery();

rs.last();

int rowCount = rs.getRow();

for (int i = rowCount; i > 0 ; i-- )

{

rs.absolute(i);

System.out.println(rs.getString(1) + "\t"

+ rs.getString(2) + "\t" + rs.getString(3));

//修改单元格多对应的值

rs.updateString(2 , "学生名" + i);

//提交修改

rs.updateRow();

}

}

//使用finally块来关闭数据库资源

finally

{

if (rs != null)

{

rs.close();

}

if (pstmt != null)

{

pstmt.close();

}

if (conn != null)

{

conn.close();

}

}

}

public static void main(String[] args) throws Exception

{

ResultSetTest rt = new ResultSetTest();

rt.initParam("mysql.ini");

rt.query("select * from student_table");

}

}

 

如果要创建可更新的结果集,查询语句查询的数据通常只能来源于一个数据表,而且查询结果结果的数据列中必须包含主键列,否则更新失败。


5、使用 ResultSetMetaData 分析结果集
MetaData 的意思是元数据,即描述其它数据的数据,因此 ResultSetMetaData 封装了描述 ResultSet 对象的数据,而 DatabaseMetaData 则封装了描述 Database 的数据。

ResultSet 里包含一个 getMetaData() 方法,该方法返回该 ResultSet 对应的 ResultSetMetaData 对象,一旦获得了 ResultSetMetaData 对象,就可以通过 ResultSetMetaData 提供的大量的方法来返回 ResultSet 的描述信息,常用的方法有以下三个:
  • int getColumnCount()
  • String getColumnName(int column)
  • int getColumnType(int column)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值