MyBaits动态SQL
- <include>
- 用法
- <where>
- 用法
- <if>
- 用法
- CONCAT
- like
- 使用${...}
- 使用#{...}
- 使用CONCAT()函数连接参数形式
- <choose>
- <when>
- <otherwise>
- 例子
- limit
字段变量,内部属性“refid”,后跟自定义的一段内容的名字 ,名字用" "包含
用法
<sql id="select_field">
id,task_type,alarm_id,work_order_num
</sql>
select <include refid="select_field"/>
where 元素只会在子元素返回任何内容的情况下才插入 “WHERE” 子句。而且,若子句的开头为 “AND” 或 “OR”,where 元素也会将它们去除。
用法
select count(1) from fa_information
<where>
create_user = #{username}
</where>
判断一个字段是否存在,内部属性test。后跟着条件,用“”包含体条件,括号中间是ture的执行语句
用法
<if test="id != null and id != ''">and id =#{id}</if>
CONCAT
(字串1, 字串2, 字串3, …): 将字串1、字串2、字串3,等字串连在一起。
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
like
mybatis中对于使用like来进行模糊查询的几种方式:
使用${…}
大括号里面不能注明jdbcType
可能会引起sql的注入,平时尽量避免使用${…}
使用#{…}
使用CONCAT()函数连接参数形式
不想使用所有的条件,而只是想从多个条件中选择一个使用。针对这种情况,MyBatis 提供了 choose 元素,它有点像 Java 中的 switch 语句
如果满足这条语句的条件则执行
默认执行
例子
<choose>
<when test="title != null">
AND title like #{title}
</when>
<when test="author != null and author.name != null">
AND author_name like #{author.name}
</when>
<otherwise>
AND featured = 1
</otherwise>
</choose>
limit
后面跟两个参数,第一个是开始数据,第二个是截至数据(不包含这一数据)