mybatis if标签使用总结
在项目开发中,mybatis <if> 标签使用广泛,本文讲解if标签的两种使用方式
其一、使用 <if> 标签判断某一字段是否为空
其二、使用 <if> 标签判断传入参数是否相等
具体代码如下
数据库表结构和数据
实体类
package com.demo.bean; public class Commodity { private String name; private String date; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } @Override public String toString() { return "Com [name=" + name + ", date=" + date + "]"; } }
mapper层
package com.demo.mapper; import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import com.demo.bean.Commodity; @Mapper public interface CommodityMapper { List<Commodity> getListByDate(Commodity commodity); List<Commodity> getListByStartDateAndEndDate(@Param("startDate")String startDate, @Param("endDate")String endDate); }
mapper.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.demo.mapper.CommodityMapper"> <resultMap id="BaseResultMap" type="com.demo.bean.Commodity"> <id column="name" property="name" jdbcType="VARCHAR" /> <result column="date" property="date" jdbcType="VARCHAR" /> </resultMap> <select id="getListByDate" resultMap="BaseResultMap"> select * from commodity where 1 = 1 <if test="date != null and date != ''"> and date = #{date} </if> </select> <select id="getListByStartDateAndEndDate" resultMap="BaseResultMap"> select * from commodity where 1 = 1 <if test="#{startDate}.toString() != #{endDate}.toString()"> and date between #{startDate} and #{endDate} </if> </select> </mapper>
注意:mybatis 等值判断的 tostring()方法 (上边代码中第二个select中的toString()方法)
controller层
package com.demo.controller; import java.util.HashMap; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import com.demo.bean.Commodity; import com.demo.mapper.CommodityMapper; @RestController public class DemoController { @Autowired private CommodityMapper comMapper; @RequestMapping(value = "/commodity") public Object commodity() { Map<String, Object> map = new HashMap<String, Object>(); Commodity com =new Commodity(); com.setDate("2018-10-12"); map.put("res", comMapper.getListByDate(com)); return map; } @RequestMapping(value = "/between") public Object commodityBetween() { Map<String, Object> map = new HashMap<String, Object>(); map.put("res", comMapper.getListByStartDateAndEndDate("2018-10-09", "2018-10-13")); return map; } }
测试
1、访问 http://localhost:9000/commodity
2、访问 http://localhost:9000/between
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Mybatis配置之<typeAliases>别名配置元素解析
这篇文章主要介绍了Mybatis配置之<typeAliases>别名配置元素解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-07-07springboot项目拦截前端请求中的特殊字符串(解决方案)
springboot项目中,需要对前端请求数据进行过滤,拦截特殊字符,本文通过实例代码给大家分享完美解决方案,感兴趣的朋友一起看看吧2023-10-10详解java开启异步线程的几种方法(@Async,AsyncManager,线程池)
在springboot框架中,可以使用注解简单实现线程的操作,还有AsyncManager的方式,如果需要复杂的线程操作,可以使用线程池实现,本文通过实例代码介绍java开启异步线程的几种方法(@Async,AsyncManager,线程池),感兴趣的朋友一起看看吧2023-09-09解决Java的InputMismatchException异常
这篇文章介绍了解决Java的InputMismatchException异常的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-12-12
最新评论