Mybatis 动态sql语句if标签、where标签以及choose标签的结合巧妙使用

需求

SELECT    id ,    gender ,    nickname ,    mobile ,    avatar  FROM    dts_user  WHERE    gender = 1  AND mobile LIKE '%56%'

查询结果

mybatis动态sql配置

进阶一>>查询条件 gender 已固定,模糊查询 mobile 以修改成了动态配置

<select id="queryUserByWhere" parameterType="user" resultType="user">  SELECT id , gender ,nickname ,mobile ,avatar From dts_user  WHERE gender = 1 AND mobile LIKE '%${mobile}%'select>

进阶二>>查询条件 gender(只能查 gender 为 0 或者 1 的用户数据 )和模糊查询 mobile 都修改成了动态配置

<select id="queryUserByWhere" parameterType="user" resultType="user">  SELECT id , gender ,nickname ,mobile ,avatar From dts_user  WHERE gender = #{gender} AND mobile LIKE '%${mobile}%'select>

进阶三>>if 标签来判断,可选择性来使用查询条件

<select id="queryUserByWhere" parameterType="user" resultType="user">  SELECT id , gender ,nickname ,mobile ,avatar From dts_user  WHERE 1=1  <if test="gender != null and gender != ''">    AND gender = #{gender}  if>  <if test="mobile != null and mobile != ''">    AND mobile LIKE '%${mobile}%'  if>select>

进阶四>>查所有用户的信息时,不传 gender 与 username 数据

<select id="queryUserByWhere" parameterType="user" resultType="user">   SELECT id , gender ,nickname ,mobile ,avatar From dts_user  <where>    <if test="gender != null">      AND gender = #{gender}    if>    <if test="mobile != null and mobile != ''">     AND mobile LIKE '%${mobile}%'    if>  where>select>

一个实战复杂的示例仅仅提供sql

@Select("  "

点击下方卡片/微信搜索,关注公众号“天宇文创意乐派”(ID:gh_cc865e4c536b)

天宇文创意乐派
个人订阅号 主要提供:分享最新资讯 IT教程 免费小说的平台
20篇原创内容
公众号

本文使用 文章同步助手 同步

你可能感兴趣的:(Mybatis 动态sql语句if标签、where标签以及choose标签的结合巧妙使用)