在 java数据 编程 中,ResultSet是在 Connection基础 上生成 的,因此 Connection关闭 时,ResultSet也被关闭 了,而不关闭 Connection的话, 就会造成 连接 资源 的浪费 ,因此 前面 所学的 数据 库操作 程序 ,都是将数据 读取 出来 以后 ,存放 到集 合中,然后 返回 值,供调用 程序 使用 。
2、测试Result
在这个练习 中,也可以 使用 Result接口 来完成 数据 的返回 ,ResultSet接口 是 java.sql.ResultSet接口 ,而 Result是 java.servlet.jsp.jstl.sql.Result java.servlet.jsp.jstl.sql.Result java.servlet.jsp.jstl.sql.Result java.servlet.jsp.jstl.sql.Result java.servlet.jsp.jstl.sql.Result java.servlet.jsp.jstl.sql.Result java.servlet.jsp.jstl.sql.Resultjava.servlet.jsp.jstl.sql.Result 提供的。
1、使用Result返回值
public class BookDAO_Properties extends ConnectionProperties {
/**
* 取得书籍集合信息结果的方法
* @return
*/
public Result getBookResult(){
Result result=null;
getConnection();
String sql="select * from books";
try {
pStmt=conn.prepareStatement(sql);
rs=pStmt.executeQuery();
//将ResultSet转换为Result
result=ResultSupport.toResult(rs);
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll();
}
return result;
}
}
2、测试Result
public class ResultTest {
/**
* @param args
*/
public static void main(String[] args) {
BookDAO_Properties bp=new BookDAO_Properties();
Result result=bp.getBookResult();//得到Result的对象
//Result 是一个行列式的集合
//result.getRowCount()取得Result中的行数
for(int i=0;i<result.getRowCount();i++){
SortedMap<String,Object> row=result.getRows()[i];//取到的行集合为一个Map集合数组,逐一得到数组中的每一行
System.out.println("书号:"+row.get("isbn")+",书名:"+row.get("title"));//根据key值得到行Map集合中相对应的值
}
}
}
结果: