mybatis动态sql中的两个内置参数(_parameter和_databaseId)

<!-- mybatis动态sql的两个内置参数
           不只是方法传递过来的参数可以被用来判断,取值
       mybatis默认还有两个内置参数
           _parameter:代表整个参数
                                      单个参数:_parameter就是这个参数
                                      多个参数:参数会被封装为一个map:_parameter就是代表这个map             
           _databaseId:如果配置了databaseIdProvider标签
                _databaseId 就是代表当前数据库的别名Oracle
      -->
      
      
      <!-- List<Employee> getEmpsTestInnerParameter(Employee employee); -->
      <select id="getEmpsTestInnerParameter" resultType="com.hand.mybatis.bean.Employee">
          SELECT * FROM emp 
          <if test="_parameter!=null">      _parameter相当于传入的参数employee,判断employee是否为空,若不为空则执行where条件 
           where ename=#{_parameter.eName}   
          </if>
      </select>

原文地址:https://www.cnblogs.com/hfultrastrong/p/9242708.html

时间: 2024-10-12 13:56:08

mybatis动态sql中的两个内置参数(_parameter和_databaseId)的相关文章

MyBatis动态SQL中trim标签的使用

My Batis 官方文档 对 动态SQL中使用trim标签的场景及效果介绍比较少. 事实上trim标签有点类似于replace效果. trim 属性 prefix:前缀覆盖并增加其内容 suffix:后缀覆盖并增加其内容 prefixOverrides:前缀判断的条件 suffixOverrides:后缀判断的条件 比如: Java代码   select b.* from sys_menu b where 1 = 1 <trim suffix="WHERE" suffixOve

mybatis动态sql中where标签的使用

where标记的作用类似于动态sql中的set标记,他的作用主要是用来简化sql语句中where条件判断的书写的,如下所示: <select id="selectByParams" parameterType="map" resultType="user"> select * from user <where> <if test="id != null ">id=#{id}</if&g

mybatis动态SQL中的sql片段

在mybatis中通过使用SQL片段可以提高代码的重用性,如下情景: 1.创建动态SQL <sql id="sql_count">select count(*)</sql> 2.使用 <select id="selectListCountByParam" parameterType="map" resultType="String"> <include refid="sql_

mybatis动态SQL中的set标签的使用

set标记是mybatis提供的一个智能标记,我一般将其用在修改的sql中,例如以下情况: <update> update user <set> <if test="name != null and name.length()>0">name = #{name},</if> <if test="gender != null and gender.length()>0">gender = #{ge

mybatis动态sql中foreach标签的使用

foreach标签主要用于构建in条件,他可以在sql中对集合进行迭代.如下: <delete id="deleteBatch"> delete from user where id in <foreach collection="array" item="id" index="index" open="(" close=")" separator=",&qu

mybatis动态sql中的trim标签的使用

trim标记是一个格式化的标记,可以完成set或者是where标记的功能,如下代码: 1. select * from user <trim prefix="WHERE" prefixoverride="AND |OR"> <if test="name != null and name.length()>0"> AND name=#{name}</if> <if test="gender

mybatis的sql中字段两种映射(映射到实体)方式

mybatis的xml配置文件中,字段映射的两种方式: 1.resultMap标签中将数据库的字段与实体类中的字段对应: <resultMap id="BaseResultMap" type="com.maket.entity.ActMaketBase" > <id column="id" property="id" /> <result column="acti_name"

mybatis动态sql之内置参数_parameter和_databaseId

_parameter:代表整个参数 单个参数:就是这个参数 多个参数:参数会被封装成一个Map public List<Employee> getEmp(Employee employee); <select id="" result=""> <if test="_databaseId='mysql'"> select * from tbl_employee <if test="_paramet

MyBatis动态SQL和缓存

1. 什么是动态SQL 静态SQL:静态SQL语句在程序运行前SQL语句必须是确定的,SQL语句中涉及的表的字段名必须是存在的,静态SQL的编译是在程序运行前的. 动态SQL:动态SQL语句是在程序运行是被创建和执行的. 2. MyBatis中的动态SQL 为什么需要动态SQL?有时候需要根据实际传入的参数来动态的拼接SQL语句. 对于一些复杂的查询,我们可能会指定多个查询条件,但是这些条件可能存在也可能不存在,此时就需要根据用户指定的条件动态生成SQL语句.如果不使用持久层框架我们可能需要自己