以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
相关文章推荐
- myBatis ibatis 查询多行结果集 resultMap 配置
- 使用JDBC连接数据库,查询结果转成List或者Map(臃肿版)
- 如何把从数据库中查询出的结果保存为List<Map>
- 好947 Mybatis 配置resultMap 带参数查询Map 注意selectOne数据库返回结果一条数据库 否则会报错
- 使用JDBC连接数据库,查询结果转成List或者Map(简洁版)
- 数据库查询结果、Ibatis的ResultMap与JavaBean的对应关系
- 在Java中将数据库查询结果保存为List<Map>类型的JavaScript数组文件
- java:数据库查询结果类:ResultMap 屏蔽数据库设计细节,减弱强联系。
- 数据库查询结果封装List<Map<String,String>>
- mybatis执行查询语句查询不到结果,控制台输出sql语句复制到数据库中能查到数据
- 数据库查询结果Cursor,怎样准确地给model准确赋值
- Python查询数据库,中文的结果显示不出来
- 数据库查询结果数量问题
- android UiAutomator 借助数据库查询来验证结果并记录在log中
- Bmob数据库查询结果为null
- C++文本查询程序 C++Primer练习12.28 使用vector,map,set容器保存来自文件的数据并生成查询结果
- 所有查询的结果自动封装成map返回
- 数据库查询返回List<Map<String, Object>>
- Android连接服务器数据库查询+Gson解析(List和Map)格式json数据(二)
- 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)