SpringBoot集成Mybatis实现多表查询(XML版)

1,EnginCheckOrder(头表实体)

public class EnginCheckOrder implements Serializable {
    private String id;

    private String checkOrderCode;

    private String contractCode;

    private String jobCode;

    private String checkType;

    private String checkWay;

    private String checkResult;

    private Date planDate;

    private Date actualDate;

    private String descri;

    private String createBy;

    private Date createDate;

    private String updateBy;

    private Date updateDate;

    private String deleteFlag;
    
    //自行生成get和set方法

}

2,EnginCheckOrderItem(子表实体)

public class EnginCheckOrderItem implements Serializable {
    private String id;

    private String checkOrderId;

    private Integer seqNo;

    private String checkItemCode;

    private String checkItemName;

    private String checkRequire;

    private String checkUom;

    private String specialItem;

    private String checkResult;

    private String remark;

    private String createBy;

    private Date createDate;

    private String updateBy;

    private Date updateDate;

    private String deleteFlag;
    
    //自行生成get和set方法
    
}

3,EnginCheckOrderExt(拓展头子表实体)

public class EnginCheckOrderExt extends EnginCheckOrder {

    private List<EnginCheckOrderItem> itemList;

    //自行生成get和set方法
    
}

4,EnginCheckOrderExtMapper(xml对应的接口文件)

@Repository
public interface EnginCheckOrderExtMapper {
    List<EnginCheckOrderExt> findCheckOrderList(EnginCheckOrder enginCheckOrder);
}

5,EnginCheckOrderExtMapper.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.yun.demo.extmapper.EnginCheckOrderExtMapper">
<!--头表的映射 -->
  <resultMap id="headerExtMap" type="com.yun.demo.extmapper.extentity.EnginCheckOrderExt">
    <id column="id" jdbcType="VARCHAR" property="id" />
    <result column="check_order_code" jdbcType="VARCHAR" property="checkOrderCode" />
    <result column="contract_code" jdbcType="VARCHAR" property="contractCode" />
    <result column="job_code" jdbcType="VARCHAR" property="jobCode" />
    <result column="check_type" jdbcType="VARCHAR" property="checkType" />
    <result column="check_way" jdbcType="VARCHAR" property="checkWay" />
    <result column="check_result" jdbcType="VARCHAR" property="checkResult" />
    <result column="plan_date" jdbcType="DATE" property="planDate" />
    <result column="actual_date" jdbcType="DATE" property="actualDate" />
    <result column="descri" jdbcType="VARCHAR" property="descri" />
    <result column="create_by" jdbcType="VARCHAR" property="createBy" />
    <result column="create_date" jdbcType="DATE" property="createDate" />
    <result column="update_by" jdbcType="VARCHAR" property="updateBy" />
    <result column="update_date" jdbcType="DATE" property="updateDate" />
    <result column="delete_flag" jdbcType="CHAR" property="deleteFlag" />
    <!--子表的集合 -->
    <collection property="itemList" column="id" select="selectItemByOrderId" />
  </resultMap>

<!--子表的映射 -->
  <resultMap id="itemMap" type="com.yun.demo.mapper.entity.EnginCheckOrderItem">
    <id column="id" jdbcType="VARCHAR" property="id" />
    <result column="check_order_id" jdbcType="VARCHAR" property="checkOrderId" />
    <result column="seq_no" jdbcType="INTEGER" property="seqNo" />
    <result column="check_item_code" jdbcType="VARCHAR" property="checkItemCode" />
    <result column="check_item_name" jdbcType="VARCHAR" property="checkItemName" />
    <result column="check_require" jdbcType="VARCHAR" property="checkRequire" />
    <result column="check_uom" jdbcType="VARCHAR" property="checkUom" />
    <result column="special_item" jdbcType="VARCHAR" property="specialItem" />
    <result column="check_result" jdbcType="VARCHAR" property="checkResult" />
    <result column="remark" jdbcType="VARCHAR" property="remark" />
    <result column="create_by" jdbcType="VARCHAR" property="createBy" />
    <result column="create_date" jdbcType="DATE" property="createDate" />
    <result column="update_by" jdbcType="VARCHAR" property="updateBy" />
    <result column="update_date" jdbcType="DATE" property="updateDate" />
    <result column="delete_flag" jdbcType="CHAR" property="deleteFlag" />
  </resultMap>

  <select id="findCheckOrderList"
          parameterType="com.yun.demo.mapper.entity.EnginCheckOrder"
          resultMap="headerExtMap">
    select * from check_order t1
    <where>
      <if test="checkOrderCode !=null">
        and t1.check_order_code like concat(concat('%',#{checkOrderCode,jdbcType=VARCHAR}),'%')
      </if>
      <if test="contractCode !=null">
        and t1.contract_code like concat(concat('%',#{contractCode,jdbcType=VARCHAR}),'%')
      </if>
      <if test="jobCode !=null">
        and t1.job_code like concat(concat('%',#{jobCode,jdbcType=VARCHAR}),'%')
      </if>
      <if test="checkType !=null">
        and t1.check_type like concat(concat('%',#{checkType,jdbcType=VARCHAR}),'%')
      </if>
      <if test="checkWay !=null">
        and t1.check_way like concat(concat('%',#{checkWay,jdbcType=VARCHAR}),'%')
      </if>
      <if test="planDate !=null">
        and t1.plan_date =#{planDate,jdbcType=DATE}
      </if>
      <if test="actualDate !=null">
        and t1.actual_date =#{actualDate,jdbcType=DATE}
      </if>
    </where>
    ORDER BY t1.plan_date desc
  </select>

  <select id="selectItemByOrderId" parameterType="string" resultMap="itemMap">
    select * from check_order_item where check_order_id=#{id} order by seq_no
</select>

</mapper>

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Spring Boot集成MyBatis并进行接口查询,你需要进行以下几个步骤: 1. 首先,在Spring Boot的配置文件中配置数据库连接信息,包括数据库URL、用户名、密码和驱动类等。\[1\] 2. 创建一个启动类,使用@SpringBootApplication注解标记该类为Spring Boot的启动类。在该类的main方法中,使用SpringApplication.run方法启动应用程序,并获取MybatisUtil和SimpleExecutorExample的实例。\[2\] 3. 在pom.xml文件中添加MySQL驱动和MyBatis的起步依赖。\[3\] 4. 使用MyBatis提供的逆向工程生成实体Bean、映射文件和DAO接口。可以使用MyBatis Generator或者MyBatis Plus等工具来生成这些文件。生成后,你可以在DAO接口中定义各种查询方法。 5. 在需要进行查询的地方,通过@Autowired注解注入DAO接口的实例,然后调用相应的查询方法即可。 这样,你就可以在Spring Boot集成MyBatis并进行接口查询了。记得在配置文件中配置好数据库连接信息,并生成相应的实体Bean、映射文件和DAO接口。 #### 引用[.reference_title] - *1* *2* [1. Springboot集成Mybatis](https://blog.csdn.net/u010502101/article/details/127656247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [SpringBoot集成MyBatis](https://blog.csdn.net/m0_67391377/article/details/124777417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值