java ibatis 一对多查询
来源:互联网 发布:做外盘用什么软件原油 编辑:程序博客网 时间:2024/06/08 03:58
一对一查询语句ID: query 是主查询 映射结构map ID 是 hashDynamic,queryUser 子查询 映射结构map ID 是 hashUser
一对多查询语句 ID: query2 是主查询 映射结构map ID 是 hashDynamic2,queryUser2 子查询 映射结构map ID 是 hashUser
父查询和子查询都使用map来接收查询参数,如果是一对一的查询接收是OK的
但是一对多的查询,子查询使用map接收参数,会报错子查询查询有多条数据。所以我只能自己写 一个对象使用List<Map>来接收子查询多条数据
虽然知道,查询接收时使用map接收,其实是将map作为一个java对象来接收查询,而在dao方法中是使用queryForMap方式接收,
这个方法会把多条结果作为 list<map> 方式来接收。
我就是不想去创建一个 java对象用来接收 查询数据,在一对多的情况下,能不能像只引入java.util.map 的形式来接收子查询。
虽然我认为是没有的。。但是还是想问问,看有没有偏门的方法能处理,或者比我处理的多条的方式更简单。求大神。。。
<sqlMap namespace="ehr.comment">
<!-- <typeAlias alias="comment" type="com.ehr.dto.Comment"/> --><typeAlias alias="hashMap" type="java.util.HashMap"/>
<typeAlias alias="dynamic" type="com.ehr.model.Dynamic"/>
<resultMap class="hashMap" id="hashDynamic">
<result property="id" column="id"/>
<result property="user_id" column="userid"/>
<result property="user" column="userid" select="ehr.comment.queryUser"/>
</resultMap>
<resultMap class="hashMap" id="hashUser">
<result property="userId" column="id"/>
<result property="userName" column="username"/>
</resultMap>
<!-- 一对一查询 start 查询全部使用map接收查询参数-->
<select id="queryUser" parameterClass="java.lang.Integer" resultMap="hashUser">select id,username from t_user where id = #value#
</select>
<select id="query" parameterClass="java.util.HashMap" resultMap="hashDynamic">
select t_d.id,t_d.userid from t_dynamic t_d limit 10
</select>
<!-- 一对一查询 end-->
<!-- 一对多查询 start 我用map接收参数查询多条会报错说子查询多条数据,所有无奈,我只能自己写个java对象,对象中放一个list<map> 来接收子查询多条数据-->
<resultMap class="dynamic" id="hashDynamic2">
<result property="id" column="id"/>
<result property="userId" column="userid"/>
<result property="title" column="title"/>
<result property="userMap" column="{userId_1=userid,userId_2=title}" select="ehr.comment.queryUser2"/>
</resultMap>
<select id="queryUser2" parameterClass="hashMap" resultMap="hashUser">
select id,username from t_user where id = #userId_1# or id = #userId_2# <!--因为数据主键只能存在一条,所以我传两个参数,或者方式查询2条数据-->
</select>
<select id="query2" parameterClass="hashMap" resultMap="hashDynamic2">
select t_d.id,t_d.userid,title from t_dynamic t_d limit 10
</select>
<!-- 一对多查询 end-->
</sqlMap>
public class Dynamic {
private Integer id;
private Integer userId;
private String title;
private List<Map<String, Object>> userMap;
封装get、set省略.....
}
- java ibatis 一对多查询
- ibatis的一对多查询
- ibatis 一对多查询 多条件关联
- ibatis 查询 实体类中包含实体类 一对多
- ibatis一对多
- ibatis一对多
- ibatis 一对多关联
- ibatis一对多
- ibatis一对多映射
- ibatis 一对一,一对多
- Ibatis一对多实例
- ibatis一对多示例
- Ibatis的一对多关联
- ibatis 实现一对多代码
- iBATIS一对多配置问题
- ibatis单表一对多
- iBatis一对多 分页详解
- [Java][ibatis]ibatis批量处理+多表关联查询
- hibernate 获取 SessionFactory 的工具类
- 线程池(6)——基本使用(中)
- Linux vim IDE配置---基于Ubuntu 16.04
- SVM的matlab代码及SVM的多分类的作法
- 关联分析之Apriori学习笔记
- java ibatis 一对多查询
- webService调试
- List View和ScrollView冲突的解决以及List View在Scroll View中计算高度
- Shell 编写摘要 (一)
- 图片 二进制 之间转换
- solr的简单使用说明
- Windows gVim 7.4 安装YouCompleteMe插件
- java 5大框架
- C++模板类+嵌套类实例