我是靠谱客的博主 潇洒灰狼,最近开发中收集的这篇文章主要介绍mybatis中对resultMap 做嵌套查询 多参数查询,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

<resultMap id="Organ" type="com.pskj.GSLZ.pojo.zfzb.Organ" >
<result column="OR_ID" property="OR_ID" jdbcType="VARCHAR"></result>
<result column="OR_NAME" property="OR_NAME" jdbcType="VARCHAR"></result>
<result column="PARENT_ID" property="PARENT_ID" jdbcType="VARCHAR"></result>
<association column="OR_ID" property="count" javaType="Integer" select="count"/>
<collection column="OR_ID"
property="subOrgan" ofType="Organ" javaType="java.util.ArrayList" select="selectChildren"></collection>
</resultMap>
<!--查询一级组织架构-->
<select id="checkList" parameterType="pd" resultMap="Organ" useCache="false">
SELECT *
FROM sys_organ t
WHERE t.OR_ID = #{OR_ID} AND t.OR_STATE = ‘2‘
</select>
<!--查询下级组织架构-->
<select id="selectChildren" parameterType="pd" resultMap="Organ"
useCache="false">
SELECT *
FROM sys_organ t WHERE t.PARENT_ID = #{OR_ID} AND t.OR_STATE = ‘2‘
</select>
<!--统计各支队故障数量-->
<select id="count" parameterType="pd" resultType="Integer" useCache="false">
SELECT IFNULL(sum(num),0) count from zfzb_subcheck zsk LEFT JOIN zfzb_equip_check zec on zec.EC_ID=zsk.EC_ID
<where>
zec.STATE=‘1‘
<!--查询下级组织所有id,这是写的一个MySQL查询函数-->
and ORGAN_ID in(SELECT OR_ID from sys_organ where OR_STATE=‘2‘ and FIND_IN_SET(OR_ID,findOrgan(#{OR_ID})))
</where>
</select>

上面是一个简单的示例,还有的时候我们需要传进来的参数,可以 先把这个参数隐射成结果集

<resultMap type="PersonalTrends" id="PersonalTrendsResult">
<result property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="userName" column="user_name"/>
<result property="buidingId" column="buiding_id"/>
<result property="buidingName" column="buiding_name"/>
<result property="trends" column="trends"/>
<result property="likeNum" column="like_num"/>
<result property="creatTime" column="creat_time"/>
<result property="updateTime" column="update_time"/>
<result property="phone" column="phone"/>
<association property="isLike" javaType="Integer" column="{tid = id,ph = phone}" select="getIsLikeBy"></association>
</resultMap>
<!-- photo 是mapper 传进来的参数 把 这个字段 变成返回值-->
<sql id="selectPersonalTrendsVo">
select id, user_id, user_name, buiding_id, buiding_name, trends,like_num, creat_time, update_time ,${phone} phone from personal_trends
</sql>
<!-- 这是主要查询方法-->
<select id="selectPersonalTrendsByBid" parameterType="java.util.Map"
resultMap="PersonalTrendsResult">
<include refid="selectPersonalTrendsVo"/>
where buiding_id = #{buidingId}
and user_id = #{userId}
order by creat_time desc
limit 20
</select>
<!-- 这是resultMap 中 isLike 的查询-->
<select id="getIsLikeBy" parameterType="java.util.Map" resultType="java.lang.Integer">
select count(id) from likes_record where trends_id = #{tid} and customer_phone = #{ph} and likes = "1"
</select>

 

最后

以上就是潇洒灰狼为你收集整理的mybatis中对resultMap 做嵌套查询 多参数查询的全部内容,希望文章能够帮你解决mybatis中对resultMap 做嵌套查询 多参数查询所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部