将ResultSet结果集放在Result中进行处理

来源:互联网 发布:陶瓷销售软件 编辑:程序博客网 时间:2024/05/22 07:58

在JDBC中,我们通常使用javax.sql.ResultSet类来存放放回的数据,它的流程和生命周期如下:使用ResultSet来返回数据库查询结果Client --> Connection --> Statement --> JDBC Driver --+   Database Client <-- Parsing <-- ResultSet <-- JDBC Driver --+    Connection lifecycle   ResultSet lifecycle    我们可以看到,这样会长期占用数据库连接的资源,是一个有点不爽的问题...在JSTL中提供了另外一种机制,让我们在返回查询结果到表示层的时候,可以做到离线使用!它就是javax.servlet.jsp.jstl.sql.Result类!1.导入jstl包,是属于j2ee中的包2.对数据库进行操作数据库中的表ACCOUNTpackage com.org.connectsqlserver;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Map;import javax.servlet.jsp.jstl.sql.Result;import javax.servlet.jsp.jstl.sql.ResultSupport;//通过result获取结果集public class GetResult {public static final String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";public static final String url = "jdbc:sqlserver://localhost:1433;databaseName=Bank";public static final String name = "sa";public static final String password = "sa";   public static void main(String[] args){      Connection conn = null;   PreparedStatement ps = null;   ResultSet rs = null;   try {Class.forName(driver);conn = DriverManager.getConnection(url, name, password);String sql="select * from account";ps = conn.prepareStatement(sql);rs =  ps.executeQuery();                //利用ResultSupport.toResult(rs)将ResultSet转换为Result;Result result = (Result) ResultSupport.toResult(rs);                //result.getRows();获取表中的数据,返回一个Map数组,表中的每一列都放在一个Map集合中Map[] rows = result.getRows(); for(Map row:rows){                        //通过row.get("ACCOUNT_ID")来获取每列的数据System.out.print(row.get("ACCOUNT_ID")+"\t");System.out.print(row.get("ACCOUNT_NAME")+"\t");System.out.print(row.get("CODE")+"\t");System.out.print(row.get("OPEN_TIME")+"\t");System.out.println(); }   } catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();  }finally{  try {conn.close(); ps.close();  rs.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}   }      }}//执行后返回的结果//1陆逊4201061978100086742011-07-10 00:00:00.0//2大乔4224321978100345612011-07-12 00:00:00.0//3孙尚香4224321978100341682011-07-25 00:00:00.0//4吕布4227141979090774582013-03-19 22:10:38.613//5赵云4201041978111108522011-07-28 00:00:00.0//6张三4201041978112132142012-07-03 00:00:00.0//7刘备4201041992021435212011-11-20 00:00:00.0//8关羽4201041989052195422012-04-10 00:00:00.0//9李浩4201041986012452342011-02-14 00:00:00.0//10王武4201041985042516542010-04-25 00:00:00.0//11你好4201061978100036522013-03-27 23:30:08.56//19jack4224321978100342212013-03-28 00:13:19.06


	
				
		
原创粉丝点击