jfy3d(剑事)BLOG

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  37 随笔 :: 0 文章 :: 363 评论 :: 0 Trackbacks

原理就是用Map存放单条数据然后放到List里

用起来可以这样调用  List list = rs.selectRS(sqlStr);

for(int i=0;i<list.size;i++)
{
    ((Map)list.get(i)).get("username");
}
这样的话就不用每次在写数据库连接了,而且有比较复杂的页面格式输出就可以通过对 i 的控制来实现了

下面是具体实现类可以结合struts,webwork2的标签来用,我已经测试过了没问题
我也看到一些人是自己写类来代替Map来用的

package com;

import conn.DBConnManager;
import java.sql.*;
import java.util.*;

public class ResultGather
{
 private String sql;
 public ResultGather()
 {
  
 }
 public ResultGather(String sqlcom)
 {
  this.sql=sqlcom;
 }
 public List selectRS(String sqlStr)
 {
  this.sql = sqlStr;
  return selectRS();
 }
 public List selectRS()
 {
  List rsall = new ArrayList();
  Map rsTree;
  DBConnManager conn = null;
  Connection con = null;
  Statement stmt = null;
  ResultSet rs = null;
  try{
   conn = DBConnManager.getInstance();
   con = conn.getConnection("mssql");
   stmt = con.createStatement();
   rs = stmt.executeQuery(sql);
   ResultSetMetaData rsmd = rs.getMetaData();//取数据库的列名  我觉得名比1,2,3..更好用
   int numberOfColumns = rsmd.getColumnCount();
   while(rs.next())
   {
   rsTree = new HashMap(numberOfColumns);//注意要new
     for(int r=1;r<numberOfColumns+1;r++)
     {
      rsTree.put(rsmd.getColumnName(r),rs.getObject(r)); 
     }
     rsall.add(rsTree);
   }
   
  }catch(java.lang.Exception ex){
   ex.printStackTrace();
  }finally{
   try{
    if(rs!=null)
     rs.close();
    if(stmt!=null)
     stmt.close();
    if(conn!=null)
     conn.releaseConnection("mssql",con);
   }catch(Exception e){
    
   }   
  }
  return rsall;
 }
}

简单的东西 交流交流

posted on 2005-05-12 00:23 剑事 阅读(3066) 评论(9)  编辑  收藏 所属分类: 小程序

评论

# re: 封装数据结果集 2005-05-25 21:55 hcom
取数据的时候是不是要判断null的情况?
否则可能报空指针的错误吧?  回复  更多评论
  

# re: 封装数据结果集 2005-05-25 22:27 剑事
这个不用 null不会异常  回复  更多评论
  

# re: 封装数据结果集 2005-06-22 09:58 张辉
# re: 封装数据结果集 2005-05-25 21:55 hcom
取数据的时候是不是要判断null的情况?
否则可能报空指针的错误吧?

# re: 封装数据结果集 2005-05-25 22:27 剑事
这个不用 null不会异常

调试过,发现问题。第一速度很慢,第二重新刷新或搜索时,发现
java.lang.NullPointerException
不知道是什么问题。
如果知道是什么问题请发Email给我。  回复  更多评论
  

# re: 封装数据结果集 2005-06-22 16:09 剑事
参看那个struts用法

我至今没有碰到这样的问题  回复  更多评论
  

# re: 封装数据结果集 2006-01-02 01:03 撒哈拉熊
有这个必要把这些数据存放在这样的数据结构里面吗?

如果针对内存来说,相同数据量,相比起直接存取结果集,占用率是不是太大了?

请指教:haolin.jia@gmail.com  回复  更多评论
  

# re: 撒哈拉熊 2006-01-04 09:11 剑事
你觉得hibernate有必要出现么

而且直接在rs输出站用数据库连接的时间要大于 封装时间  回复  更多评论
  

# re: 封装数据结果集 2006-03-16 08:45 xfan
自己写什么类哦,用spring的jdbc模板干脆
List lst=jdbcTemplate.queryForList(list);  回复  更多评论
  

# 回复 xfan 2006-03-16 13:29 xmlspy.spring
xfan说的对.
看看兄台也是spring的fans啊 .
spring的jdbc template 无论从性能和易用性上都是比较均衡的.
是目前最佳的选择 :)


交流交流 :) --- msn heaven0@hotmal.com :0 :) :) :P) :)   回复  更多评论
  

# re: 封装数据结果集 2006-03-16 18:18 剑事
@xmlspy.spring

spring的jdbc template 看过 书上讲的比较详细

设计这个类的那时候我还不知道有个SPRING的东西
而且用SPRING也要看项目的规模啊
  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: