mybatis使用时遇到的一些问题------模糊查询、处理大于号小于号、相关函数替换空值

在mybatis中可能会用到的方法

1.模糊查询

    <select id="showByIdName" parameterType="User" resultMap="resultmap">
        SELECT r.*,u.id,u.age,u.`password`,u.username FROM role r
        LEFT JOIN user u ON r.role_id=u.role_id
        <where>
            <if test="username != null and username != ''">
                username LIKE concat(concat('%',#{username}),'%')
            </if>
        </where>
    </select>

 

2.在xml文件中处理大于号小于号的方法

(1)用了转义字符把>和<替换掉

XML转义字符表格如下:

 

                 &lt;                                 

                     <

                     小于号                                           

                     &gt;

                     >                                      

                     大于号

                     &amp;

                     &

                     和

                     &apos;

                     ’

                     单引号

                     &quot;

                     "

                     双引号

 

(2)使用<![CDATA[ ]]>符号进行说明,将此类符号不进行解析

<![CDATA[ when min(starttime)<='12:00' and max(endtime)<='12:00' ]]>  

3.利用数据库相关函数替换空值

(1)在MYSQL中可以这样来写:

select IFNULL(sum(data),0)

(2)在SQLSERVER中可以这样写:

select ISNULL(sum(data),0)

(3)在ORACLE中可以这样写:

select NVL(sum(data),0) 

(4)对于所有数据库适用的方法可以这样写:

select COALESCE(sum(data),0)

COALESCE()用法:

COALESCE(value,...) 

返回第一个不是null的值,如果参数列表全是null,则返回null

  SELECT COALESCE(NULL,1);
          -> 1

  SELECT COALESCE(NULL,NULL,NULL);
          -> NULL

 

posted @ 2017-07-30 19:51  壹尘  阅读(923)  评论(0编辑  收藏  举报