Mybatis查询使用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="org.jeecg.modules.agri.breed.mapper.BreedingManagementMapper">

    <select id="searchPage" resultType="org.jeecg.modules.agri.breed.vo.BreedingManagementSearchResultVo">
        SELECT
        bm.*,
        pc.NAME AS typeName,
        ar.id AS parkId,
        ar.NAME AS parkName,
        pl.NAME AS landName,
        pl.id AS landId,
        cv.breed_name AS breedName
        FROM
        breeding_management bm
        LEFT JOIN cultivated_varieties cv ON cv.id = bm.cult_id
        LEFT JOIN pro_res_crop pc ON pc.id = cv.type_id
        LEFT JOIN pro_park_area ar ON ar.id = bm.park_id
        LEFT JOIN pro_res_land pl ON pl.id = bm.land_id
        <where>
            bm.del_flag = '0'
            <if test="breedingManagementSearchResultVo.parkId != null and breedingManagementSearchResultVo.parkId != ''">
                and bm.park_id = #{breedingManagementSearchResultVo.parkId}
            </if>
            <if test="breedingManagementSearchResultVo.landId != null and breedingManagementSearchResultVo.landId != ''">
                and bm.land_id = #{breedingManagementSearchResultVo.landId}
            </if>
            <if test="breedingManagementSearchResultVo.typeId != null and breedingManagementSearchResultVo.typeId != ''">
                and bm.type_id = #{breedingManagementSearchResultVo.typeId}
            </if>
            <if test="breedingManagementSearchResultVo.breedName != null and breedingManagementSearchResultVo.breedName != ''">
                and cv.breed_name like concat('%',#{breedingManagementSearchResultVo.breedName},'%')
            </if>
            <if test="breedingManagementSearchResultVo.startTime!=null and breedingManagementSearchResultVo.endTime!=''
    and breedingManagementSearchResultVo.startTime!=null and breedingManagementSearchResultVo.endTime!=''">
                and bm.lairaging_time between #{breedingManagementSearchResultVo.startTime} and
                #{breedingManagementSearchResultVo.endTime}
            </if>
        </where>
        order by bm.create_time desc
    </select>

    <select id="getTypeNameInfo" resultType="java.lang.String">
        SELECT pc.NAME AS typeName
        FROM breeding_management bm
                 LEFT JOIN cultivated_varieties cv ON cv.id = bm.cult_id
                 LEFT JOIN pro_res_crop pc ON pc.id = cv.type_id
                 LEFT JOIN pro_park_area ar ON ar.id = bm.park_id
                 LEFT JOIN pro_res_land pl ON pl.id = bm.land_id
        where bm.del_flag = '0'
          and bm.land_id = #{landId}
        order by bm.create_time desc LIMIT 1
    </select>
</mapper>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis中,可以使用XML配置文件来实现模糊查询。在XML映射文件中,可以使用两种方式定义参数进行模糊查询。 第一种方式是使用#定义参数。首先,在持久层接口中添加一个根据名字内容模糊查询的方法,方法名为`findByNameLike`,参数类型为`String`,返回类型为`List<User>`。然后,在XML映射文件中添加一个`select`标签,设置`id`为`findByNameLike`,`parameterType`为`string`,`resultType`为`com.mybatisstudy.pojo.User`,并在`select`标签内编写SQL语句,使用`#{name}`来引用参数。具体代码如下所示: ```xml <!-- 使用#定义参数 --> <select id="findByNameLike" parameterType="string" resultType="com.mybatisstudy.pojo.User"> select * from user where username like #{name} </select> ``` 第二种方式是使用$定义参数。在XML映射文件中,将`select`标签内的SQL语句修改为使用`${value}`来引用参数,并在持久层接口中的方法参数前不加`%`。具体代码如下所示: ```xml <!-- 使用$定义参数 --> <select id="findByNameLike" resultType="com.mybatisstudy.pojo.User" parameterType="string"> select * from user where username like '%${value}%' </select> ``` 以上是在XML映射文件中实现模糊查询的两种方式。你可以根据具体需求选择其中一种方式来实现模糊查询。 #### 引用[.reference_title] - *1* *2* *3* [Mybatis模糊查询——三种定义参数方法和聚合查询、主键回填](https://blog.csdn.net/qq_53317005/article/details/129762660)[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^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值