浏览 8904 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-16
有时做些小程序时不想使用重型的ORM框架。
public Map<String, ArrayList<String> > query(String sql){ Map<String, ArrayList<String> > map = new HashMap<String, ArrayList<String> >(); PreparedStatement preStat = null; try { preStat = conn.prepareStatement(sql); ResultSet rs = preStat.executeQuery(); ResultSetMetaData rsMeta = rs.getMetaData(); for(int i = 0; i < rsMeta.getColumnCount(); ++i){ map.put(rsMeta.getColumnName(i+1), new ArrayList<String>()); } while(rs.next()){ for(int i = 0; i < rsMeta.getColumnCount(); ++i){ String columnName = rsMeta.getColumnName(i+1); map.get(columnName).add(rs.getString(columnName)); } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { preStat.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 其实大家看我代码会认为我新手,没错,我的确是。 还有我参考了TableModel这个类后,觉得需要再对这个Map进行封装,算是写个迭代器吧。 迟点再上贴! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-16
Map<String, ArrayList<String> >
这种数据结构,看着别扭!!!!!!!!!!!!!! |
|
返回顶楼 | |
发表时间:2009-05-16
public ArrayList execute(String sql) {
ArrayList list = new ArrayList(); Hashtable table = null; conn = DBUtil.getConnection(); try { stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); rsmd=rs.getMetaData(); int len=rsmd.getColumnCount(); while(rs.next()){ table= new Hashtable(); for(int i=1;i<=len;i++){ table.put(rsmd.getColumnName(i), rs.getString(i)); } list.add(table); } } catch (Exception e) { e.printStackTrace(); } return list; } 这样会更好 |
|
返回顶楼 | |
发表时间:2009-05-16
推荐个轮子给你,apache commons中的dbutils
|
|
返回顶楼 | |
发表时间:2009-05-17
mmwy 写道 推荐个轮子给你,apache commons中的dbutils
平时都用过了~~~想写个在jsp里用时方便点`~ |
|
返回顶楼 | |
发表时间:2010-01-27
这局限性太大了吧,要封装也应该封装成Object类型呀,rs.getObject(i)
|
|
返回顶楼 | |
发表时间:2010-02-03
kjj 写道 Map<String, ArrayList<String> > 这种数据结构,看着别扭!!!!!!!!!!!!!! 哪怕是Map<String, List<String> > 都比这个强! |
|
返回顶楼 | |
发表时间:2010-02-03
移动的员工就这水平?
|
|
返回顶楼 | |