mybatis自定义动态sql传入对象

本文介绍了如何在MyBatis中处理自定义动态SQL查询,特别是当查询需要多个不同类型参数时。通过创建一个自定义对象保存参数,并在Mapper.xml中使用动态SQL,实现了包括日期、分页和状态条件的悬赏列表查询。别忘了在自定义对象中添加getter和setter方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在有一需求,要求页面显示悬赏列表,要求该悬赏未过期,没有人接受以及附带分页查询。

这里我们很容易能得到满足该需求的sql语句:

select *
    from bounty
    where DeadTime > nowtime AND status = 0 limit (page-1) , count

其中nowtime为当前时间,0是我设置的未接收参数,page为页数,count为每页条数.

当项目使用mybatis自动生成增删改查代码功能时,我们要运行上述sql语句必须要在**Mapper.xml文件中添加动态sql函数。

我们新建一个select函数

由于这里我们需要传三个参数,date、page以及count且函数类型不同,所以我们只能选择用一个自定义对象来保存三个参数并传入**Mapper.xml文件.

public class Paging {

    private String date;

    private int page;

    private int count;
}

这里注意一下,我们自定义的class里面一定要手动添加getter和setter方法,可以用快捷键alt+Ins选择getter and setter快捷生成。

**Mapper.xml中的自定义sql语句如下:

<select id="selectTime" resultMap="BaseResultMap" parameterType="com.springmvc.entity.Paging" >
    select *
    from bounty
    where DeadTime > #{date} AND status = 0 limit #{page} , #{count}
  </select>

这样就能将对象的三个参数全部都成功传入该语句。

最后在dao文件以及service文件中添加该函数,ok,可以使用了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值