MyBaits动态SQL

MyBaits动态SQL

    • 用法
    • 用法
    • 用法
  • CONCAT
  • like
    • 使用${...}
    • 使用#{...}
    • 使用CONCAT()函数连接参数形式
    • 例子
  • 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}

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

后面跟两个参数,第一个是开始数据,第二个是截至数据(不包含这一数据)

你可能感兴趣的:(JAVA,sql,数据库)