MyBatis查询返回带集合封装

1 需要返回的类,带有一个子类集合

@Data
public class SentryHandoverSystemResult {
    @ApiModelProperty("制度名称")
    private String id;
    /**
     * 制度名称
     */
    @ApiModelProperty("制度名称")
    private String systemName;
    /**
     * 制度描述
     */
    @ApiModelProperty("制度描述")
    private String systemDescription;
    /**
     * 正常交接最早可提前xx分钟
     */
    @ApiModelProperty("正常交接最早可提前xx分钟")
    private String normalHandoverEarliest;
    /**
     * 正常交接最晚可提推迟xx分钟
     */
    @ApiModelProperty("正常交接最晚可提推迟xx分钟")
    private String normalHandoverLatest;
    /**
     * 误岗最早可提前xx分钟
     */
    @ApiModelProperty("误岗最早可提前xx分钟")
    private String missHandoverEarliest;
    /**
     * 误岗最晚可推迟xx分钟
     */
    @ApiModelProperty("误岗最晚可推迟xx分钟")
    private String missHandoverLatest;
    /**
     * 脱岗最早可提前xx分钟
     */
    @ApiModelProperty("脱岗最早可提前xx分钟")
    private String leaveHandoverEarliest;
    /**
     * 脱岗最晚可推迟xx分钟
     */
    @ApiModelProperty("脱岗最晚可推迟xx分钟")
    private String leaveHandoverLatest;
    /**
     * 未交接最早可提前xx分钟以上
     */
    @ApiModelProperty("未交接最早可提前xx分钟以上")
    private String noNormalHandoverEarliest;
    /**
     * 未交接最晚可推迟xx分钟以上
     */
    @ApiModelProperty("未交接最晚可推迟xx分钟以上")
    private String noNormalHandoverLatest;
    /**
     * 创建人
     */
    @ApiModelProperty("创建人名称")
    private String creator;
    /**
     * 创建人名称
     */
    @ApiModelProperty("创建人名称")
    private String creatorName;
    /**
     * 创建人单位
     */
    @ApiModelProperty("创建人单位")
    private String founderUnit;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;
    /**
     * 修改人
     */
    @ApiModelProperty("修改人")
    private String modifier;
    /**
     * 修改人名称
     */
    @ApiModelProperty("修改人名称")
    private String modifierName;
    /**
     * 修改时间
     */
    @ApiModelProperty("修改时间")
    private LocalDateTime modifierTime;
    /**
     * 哨点集合
     */
    @ApiModelProperty("哨点集合")
    private List<SentryHandoverSystemPoint> sentryHandoverSystemPointList;

}

2 XML写法:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ikingtech.camp.sentry.handover.client.mappers.UniversalMapper">
    <resultMap id="BaseResultMap" type="com.ikingtech.camp.sentry.handover.client.result.SentryHandoverSystemResult">
        <id column="id" jdbcType="VARCHAR" property="id" />
        <result column="system_name" jdbcType="VARCHAR" property="systemName" />
        <result column="system_description" jdbcType="VARCHAR" property="systemDescription" />
        <result column="normal_handover_earliest" jdbcType="VARCHAR" property="normalHandoverEarliest" />
        <result column="normal_handover_latest" jdbcType="INTEGER" property="normalHandoverLatest" />
        <result column="miss_handover_latest" jdbcType="BIT" property="missHandoverLatest" />
        <result column="leave_handover_latest" jdbcType="VARCHAR" property="leaveHandoverLatest" />
        <result column="leave_handover_earliest" jdbcType="VARCHAR" property="leaveHandoverEarliest" />
        <result column="no_normal_handover_earliest" jdbcType="VARCHAR" property="noNormalHandoverEarliest" />
        <result column="no_normal_handover_latest" jdbcType="VARCHAR" property="noNormalHandoverLatest" />
        <result column="creator_name" jdbcType="VARCHAR" property="creatorName" />
        <result column="creator" jdbcType="VARCHAR" property="creator" />
        <result column="founder_unit" jdbcType="INTEGER" property="founderUnit" />
        <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
        <result column="modifier" jdbcType="VARCHAR" property="modifier" />
        <result column="modifier_name" jdbcType="INTEGER" property="modifierName" />
        <result column="modifier_time" jdbcType="TIMESTAMP" property="modifierTime" />

        <collection property="sentryHandoverSystemPointList" javaType="java.util.ArrayList"
                    ofType="com.ikingtech.camp.sentry.handover.client.model.SentryHandoverSystemPoint">
            <id column="spId" jdbcType="VARCHAR" property="id" />
            <result column="spSystemNameId" jdbcType="VARCHAR" property="systemNameId" />
            <result column="spPointName" jdbcType="VARCHAR" property="pointName" />
            <result column="spPointId" jdbcType="VARCHAR" property="pointId" />

        </collection>

    </resultMap>
    <sql id="Find_Base_Column_List">
        s.id as id,
        s.system_name as system_name,
        s.system_description as system_description,
        s.normal_handover_earliest as normal_handover_earliest,
        s.normal_handover_latest as normal_handover_latest,
        s.miss_handover_earliest as miss_handover_earliest,
        s.miss_handover_latest as miss_handover_latest,
        s.leave_handover_latest as leave_handover_latest,
        s.leave_handover_earliest as leave_handover_earliest,
        s.no_normal_handover_earliest as no_normal_handover_earliest,
        s.no_normal_handover_latest as no_normal_handover_latest,
        s.creator_name as creator_name,
        s.creator as creator,
        s.founder_unit as founder_unit,
        s.create_time as create_time,
        s.modifier as modifier,
        s.modifier_name as modifier_name,
        s.modifier_time as modifier_time,
        sp.id as spId,
        sp.point_name as spPointName,
        sp.system_name_id as spSystemNameId,
        sp.point_id as spPointId
    </sql>



    <select id="findRules" resultMap="BaseResultMap">
        SELECT
        <include refid="Find_Base_Column_List"/>
        FROM
        sentry_handover_system s
        JOIN sentry_handover_system_point sp ON s.id = sp.system_name_id
        WHERE
        1 = 1
        <if test="param.systemName !=null and param.systemName!= ''">
            AND s.system_name=#{param.systemName}
        </if>
        <if test="param.pointName !=null and param.pointName!= ''">
            and sp.point_name=#{param.pointName}
        </if>
        ORDER BY s.create_time desc

    </select>
</mapper>

3 接口定义:

@Mapper
public interface UniversalMapper {

    List<SentryHandoverSystemResult> findRules(@Param("param") SentryHandoverPageParam  param);
}

4 调用:

    /**
     * 查询
     *
     * @param param 查询参数
     */
    @Override
    public Result<List<SentryHandoverSystemResult>> find(SentryHandoverPageParam param) {
        PageInfo<SentryHandoverSystemResult> pageInfo = PageHelper.startPage(param.getPage(), param.getRows()).doSelectPageInfo(() -> {
                    universalMapper.findRules(param);
                }
        );
        return Result.successPage(pageInfo.getList(), pageInfo.getTotal(), pageInfo.getPages());
    }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程简介这是一门使用Java语言,SpringBoot框架,从0开发一个RESTful API应用,接近企业级的项目(我的云音乐),课程包含了基础内容,高级内容,项目封装,项目重构等知识,99%代码为手写;因为这是项目课程;所以不会深入到源码讲解某个知识点,以及原理,但会粗略的讲解下基础原理;主要是讲解如何使用系统功能,流行的第三方框架,第三方服务,完成接近企业级项目,目的是让大家,学到真正的企业级项目开发技术。适用人群刚刚毕业的学生想提高职场竞争力想学从零开发SpringBoot项目想提升SpringBoot项目开发技术想学习SpringBoot项目架构技术想学习企业级项目开发技术就是想学习SpringBoot开发能学到什么从0开发一个类似企业级项目学会能做出市面上90%通用API快速增加1到2年实际开发经验刚毕业学完后能找到满意的工作已经工作学完后最高涨薪30%课程信息全课程目前是82章,155小时,每节视频都经过精心剪辑。在线学习分辨率最高1080P课程知识点1~11章:学习方法,项目架构,编码规范,Postman使用方法,Git和Github版本控制12~16章:搭建开发环境,快速入门SpringBoot框架17~20章:快速入门MySQL数据库21~30章:MyBatis,登录注册,找回密码,发送短信,发送邮件,企业级接口配置31~41章:实现歌单,歌单标签,音乐,列表分页,视频,评论,好友功能42~48章:阿里云OSS,话题,MyBatis-plus,应用监控49~53章:Redis使用,集成Redis,SpringCache,HTTP缓存54~58章:Elasticsearch使用,集成Elasticsearch,使用ES搜索59~61章:商城,集成支付宝SDK,支付宝支付62~64章:常用哈希和加密算法,接口加密和签名65~67章:实时挤掉用户,企业级项目测试环境,企业级接口文档68~69章:SpringBoot全站HTTPS,自签证书,申请免费证书70~73章:云MySQL数据库,云Redis数据库使用,轻量级应用部署环境,域名解析74~80章:Docker使用,生产级Kubernetes集群,域名解析,集群全站HTTPS81~82章:增强和重构项目,课程总结,后续学习计划
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值