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转义字符表格如下:
| 
 <  | 
 <  | 
 小于号  | 
| 
 >  | 
 >  | 
 大于号  | 
| 
 &  | 
 &  | 
 和  | 
| 
 '  | 
 ’  | 
 单引号  | 
| 
 "  | 
 "  | 
 双引号 
  | 
(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
                    
                
                
            
        
浙公网安备 33010602011771号