Mybatis中常用sql语句

Posted MoMoweiduan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis中常用sql语句相关的知识,希望对你有一定的参考价值。

1.变量的输入:#,$

在xnm文件中,

1)  通过 #{参数名} 来将参数放入sql语句中,根据数据类型输入

例如:select * from A表 a where  a.id=#{id}

2)   通过 ${参数名} 来表示普通字符

例如:select * from A_${id} a where  a.id=#{id}  ,假如String id=10,

那么等价于:select * from A_10 a where  a.id=‘10‘

 

 2.条件句

A.在执行条件条件查询时,就会用到该条语句:

  select * from A表 a where 1=1

    <if test="a.id !=null and a.id !=‘’ "> and a.id =#{id}</if>

    <if test="a.name!=null and a.name !=’’ "> and a.name =#{name}</if>

    ......

B.在执行插入更新语句时,

  update  A表 a set

    <if test="a.id !=null and a.id !=’’ "> a.id =#{id},</if>

    <if test="a.name!=null and a.name !=’’ "> a.name =#{name},</if>

    a.age=#{age}

     ......

C.模糊查询

  select * from A表 a where 1=1

    <if test="a.id !=null and a.id !=’’ "> and a.id =#{id}</if>

    <if test="a.name!=null and a.name !=’’ "> and a.name like concat(‘%’,#{name},‘%’)</if>

    ......

核心思想就是:对sql语句进行拼接。同时根据需要,还可以将if条件句提取出来。然后再被引用,例如:

  <select id="xxx" parameterType="com.xxx.xxxx"  resultType="com.xxx.yyy">

    select * from A表 a where 1=1

    <include refid="yyy"><include>

  </select>

   <sql id="yyy">

    <if test="a.id !=null and a.id !=’’ "> and a.id =#{id}</if>

    <if test="a.name!=null and a.name !=’’ "> and a.name =#{name}</if>

    ......

  </sql>

 

D.sql中直接使用

  SELECT IF(`status`=1,‘正常‘,‘禁用‘) AS `status` FROM area

  Case条件语句:将值改变成其他信息输出

  SELECT `name`,CASE `status`

            WHEN 1 THEN ‘草稿‘

            WHEN 2 THEN ‘提交‘

            WHEN 3 THEN ‘审核‘

            ELSE ‘No‘ END  `status`

  FROM 表A

 

3.大于小于符号

在mybatis中是无法识别sql语句中的“>”,“<”符号的,所以应该使用 “&gt;”来代替“>”,“&lt;”来代替“<”

 

以上是关于Mybatis中常用sql语句的主要内容,如果未能解决你的问题,请参考以下文章

mybatis常用xml中sql语句查询通用条件查询模板

MyBatis学习总结_11_MyBatis动态Sql语句

MyBatis基础:MyBatis动态SQL

MyBatis高级 注解开发

mybatis 使用自定义sql 语句

MyBatis-02:CRUD操作配置解析