动态SQL

作者: 趁年轻多奋斗 | 来源:发表于2019-04-19 21:43 被阅读2次

Mybatis动态SQL几种元素:

    if    判断语句

    chose(when,otherwise)    相当于Java中的switch和case    

    trim(where,set)    辅助元素,用于处理特定的SQL拼接问题,比如去掉多余的and、or等

    foreach    循环语句    在in语句等列表条件常用

If使用:

映射文件:

<select id="findUser" parameterType="string" resultMap="userMapper">

    select * from user where id=3

    <if test="name != null and name != ''">

    and name like concat ('%',#{name},'%')

    </if>

</select>

查询user表,当传入参数为null或是‘’时,默认id=3查询user,否则,按传入的参数进行name的模糊查询。

接口:

public User findUser(@Param(value = "name") String username);

Main:

//User user = userMapper.findUser("");

//User user = userMapper.findUser("cy"); 

chose、when、otherwise元素使用:

<select id="findUser" parameterType="pojo.User" resultMap="userMapper">

    select * from user where 1=1

    <choose>

        <when test="id != null and id != ''">

            AND id = #{id}

        </when>

        <when test="name != null and name != ''">

            AND name = #{name}

        </when>

        <otherwise>

            AND age is not null

        </otherwise>

    </choose>

</select>

多条件进行查询

tirm、where、set元素:

Where使用:

<select id="findUser" parameterType="map" resultMap="userMapper">

    select * from user

    <where>

        <if test="name != null and name != ''">

            and name like concat ('%',#{name},'%')

        </if>

        <if test="age != null and age != 0">

            and age = #{age}

        </if>

    </where>

</select>

接口:

public User findUser(Map<String,Object> parameterMap);

main:

Map<String,Object> p =new HashMap<String, Object>();

p.put("name","cy");

p.put("age",32);

User user1 = userMapper.findUser(p);   

Trim使用:

    trim用在要去掉一些特殊的字符串,

相关文章

  • MyBatis学习:动态sql

    1.动态sql 动态sql是mybatis中的一个核心,什么是动态sql?动态sql即对sql语句进行灵活操作,通...

  • 第十三章 使用动态SQL(一)

    第十三章 使用动态SQL(一) 动态SQL简介 动态SQL是指在运行时准备并执行的SQL语句。在动态SQL中,准备...

  • 第八章 动态SQL

    动态SQL中的元素介绍 动态SQL有什么作用 MyBatis提供了对SQL语句动态组装的功能 动态SQL中的元素 ...

  • 关于Mybatis的一些问题讨论

    Mybatis动态sql是做什么的?都有哪些动态sql?简述一下动态sql的执行原理 动态sql的用途 Mybat...

  • MyBatis5-动态 SQL

    动态 SQL 什么是动态 SQL 就是动态的对 SQL 进行组装 拼接. : 可以自动去...

  • geoserver动态颜色参数样式、动态sql配置实现

    geoserver动态颜色参数样式、动态sql配置实现 动态颜色参数样式、动态sql 访问方式: http://l...

  • 强大的动态SQL

    1 动态SQL# 那么,问题来了: 什么是动态SQL? 动态SQL有什么作用? 传统的使用JDBC的方法,相信大家...

  • MyBatis:动态 SQL

    1. 动态 SQL 简而言之,动态 SQL 就是在 Mapper 中使用分支、循环等逻辑。常见的动态 SQL 元素...

  • 无标题文章

    ### 一、简答题 #### 1、Mybatis动态sql是做什么的?都有哪些动态sql?简述一下动态sql的执行...

  • 五,MyBatis动态SQL

    一,含义:动态SQL是指根据参数数据动态组织SQL的技术 二,动态SQL的应用场景:比如淘宝搜索的时候,可以动态的...

网友评论

    本文标题:动态SQL

    本文链接:https://www.haomeiwen.com/subject/dbzcgqtx.html