您的位置:首页 > 数据库

以map接收数据库中查询到的多行结果

2017-08-14 14:16 399 查看

通常在数据库查询返回多行结果时,会以list形式来接收。但遍历list毕竟麻烦且耗时,不如直接返回map处理起来简单。

jdbc形式 代码如下:

Map<String, Map<String, Object>> map=new HashMap<String, Map<String, Object>>(2048);
Connection con = PoolManager.getConnection();;
PreparedStatement pst = con.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
ResultSetMetaData md = rs.getMetaData();
int columnCount = md.getColumnCount();
while (rs.next()) {
Map<String, Object> objectMap=new HashMap<String, Object>(16);
for (int i = 1; i <= columnCount; i++) {
objectMap.put(md.getColumnName(i), rs.getObject(i));
}
map.put(String.valueOf(rs.getObject(1)),objectMap);//key objectMap(字段名,字段值)
}
PoolManager.freeConnection(con);


连接池可参考http://blog.csdn.net/yaerfeng/article/details/7076452

mybaits

mybatis中也可以做类似处理,有两种方式,1)在mapper文件中增加注解MapKey(“列名”),则列名即为key值 2)则重写ResultHandler接口

https://segmentfault.com/a/1190000004278833 MapKey

http://blog.csdn.net/sou_liu/article/details/47755635 重写ResultHandler接口

下文为使用Mybatis拦截器实现Mybatis查询返回Map的一种方法,可指定key,value归属列

http://blog.csdn.net/zylzb/article/details/40511055
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: