MyBatis的两个内置函数

MyBatis的两个内置函数

1、_parameter 代表整个参数
单个参数,_parameter 就是这个参数
多个参数 会被封装成一个map,_parameter就是代表这个map

例如接口中有一个方法 public List<Employee> getEmpsTestInnerParameter(Employee employee);
_parameter就代表employee对象
2、_databaseId  如果配置了databaseIdProvider标签, _databaseId就是代表当前数据库的别名,mysql或者oracle等等。
在mybatis配置文件中配置
<databaseIdProvider type="DB_VENDOR">

  <!-- 为不同的数据库厂商起别名 -->
  <property name="MySQL" value="mysql"/>
  <property name="Oracle" value="oracle"/>
  <property name="SQL Server" value="sqlserver"/>
   </databaseIdProvider>

也可以配置多个数据库环境 通过改变default的value来切换数据库

如:

<environments default="dev_oracle">

  <!--mysql环境-->
  <environment id="dev_mysql">
  <transactionManager type="JDBC"></transactionManager>
  <dataSource type="POOLED">
    <property name="driver" value="${jdbc.driver}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
  </dataSource>
  </environment>
  <!--Oracle环境-->
  <environment id="dev_oracle">
  <transactionManager type="JDBC" />
  <dataSource type="POOLED">
    <property name="driver" value="${orcl.driver}" />
    <property name="url" value="${orcl.url}" />
    <property name="username" value="${orcl.username}" />
    <property name="password" value="${orcl.password}" />
  </dataSource>
</environment>
</environments>

示例

<select id="getEmpByDataBaseId" resultType="emp">
  <if test="_databaseId==‘mysql‘">
    select * from employee
    <if test="_parameter!=null">
      where last_name=#{_parameter.lastName}
    </if>
  </if>
  <if test="_databaseId==‘oracle‘">
    select * from employees_tbl
  </if>
</select>

参考:https://www.cnblogs.com/a-small-lyf/p/10324985.html

原文地址:https://www.cnblogs.com/mengw/p/12621108.html

时间: 2024-10-14 00:54:54

MyBatis的两个内置函数的相关文章

SQLServer中DataLength()和Len()两内置函数的区别(转载)

最近工作中遇到了个问题:在数据库中声明字段类型时char(4),但实际只存储了‘DCE’三个字母,程序中拼装以该字段作为key的Map中,会把‘DCE’+空格作为其Key,这样造成用没加空格的‘DCE’为key去取Value的值是取不出来的,结果是空.后来查看数据库字段类型才发现了问题所在.大家都知道,char和varchar的区别就在于一个是固定长度,一个是可变长度.在寻找问题的过程中,用到了我们今天要说的这两个内置函数,DataLength()和Len().在解释DataLength()和L

文成小盆友python-num4 内置函数

一 .python 内置函数补充 chr()  -- 返回所给参数对应的 ASCII 对应的字符,与ord()相反 # -*- coding:utf-8 -*- # Author:wencheng.zhao a = chr(65) print(a) b = chr(66) print(b) ##输出如下: A B Process finished with exit code 0 ord --返回所给的值在ASCII中对应的数字,与chr()作用相反 # -*- coding:utf-8 -*-

8. Smarty3:模版中的内置函数

smarty3中对内置函数的改动比较大,添加了许多新的功能:变量声明,表达式,流程控制,函数,数组等.但是建议不要在模版中去使用过于复杂的逻辑,而是要尽量将一些程序设计逻辑写到PHP中,并在模版中采用非常简单的语法即可调用.通常只在模版中进行一些如变量输出,流程判断及数组遍历等操作即可. 1. 变量声明 在模版中声明变量或用来在模版运行时为模版变量赋值,这是在Smarty3中新增的功能. 使用{assign},在模版运行时为模版变量或数组元素赋值 和在赋值时使用一些表达式 {$var=...}是

函数生成器、推导式及python内置函数

函数生成器.推导式及python内置函数 函数生成器 生成器的定义 在 Python 中,使用了 yield 的函数被称为生成器(generator). 跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器. 在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行. 调用一个生成器函数,返回的是一个迭代器对象. 生成器与迭代器的区别 生成

内置函数一(了解)

1. eval(): 执行字符串类型的代码,并返回最终结果 print(eval('5+4')) 2. exec:执行字符串类型的代码 s = ''' for i in [1,2,3]: print(i) ''' print(exec(s)) 以上两个内置函数很强大, 工作中禁止使用 3. hash():获取一个对象(可哈希对象:int,str,Bool,tuple)的哈希值. 4. help():用于查看函数或模块用途的详细说明. 5. callable():用于检查一个对象是否是可调用的.如

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

<!-- mybatis动态sql的两个内置参数           不只是方法传递过来的参数可以被用来判断,取值       mybatis默认还有两个内置参数           _parameter:代表整个参数                                      单个参数:_parameter就是这个参数                                      多个参数:参数会被封装为一个map:_parameter就是代表这个map       

Oracle中REGEXP_SUBSTR及其它支持正则表达式的内置函数小结

Oracle中REGEXP_SUBSTR函数的使用说明: 题目如下:在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20','23'的集合. REGEXP_SUBSTR函数格式如下:function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)__srcstr :需要进行正则处理的字符串__pattern :进行匹配的正则表达式,匹配的值将返回,返回策略由__occurrence决定__po

Python中内置函数的介绍

内置函数的功能介绍 常用内置函数如下: 1.abs() 绝对值 格式:abs(x) 例如:print(abs(-18)) >>> 18 返回值:number #该函数主要用于数值类的操作 2.all() 是否都为真 格式:all(iterable) 例如:print(all([1,2,3,])) >>> Ture 返回值:bool #该函数主要用于可迭代对象的操作,主要为列表.元祖.字典和集合.当这些类型的元素中有空字符串.空列表.空元祖.空字典.空集合时,则返回值为F

Day10:内置函数、匿名函数、递归函数

一.内置函数 1.数学运算类 2.集合类操作 内置函数个别使用示例 1.any 集合中的元素有一个为真的时候为真, 特别的,若为空串返回为False 1 print(any([0,''])) 2 print(any([0,'',1])) 执行结果 1 False 2 True 2.divmod 取商得余数,用于做分页显示功能 1 print(divmod(10,3)) #取商得余数,用于做分页显示 执行结果 1 (3, 1) 3.eval  把字符串中的数据结构给提取出来 1 dic={'nam