记一笔MyBatis的坑
Posted 薄荷*糖糖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一笔MyBatis的坑相关的知识,希望对你有一定的参考价值。
记一笔MyBatis的坑
1、sql查询concat()连接函数xml运行查询乱码
1 select concat(CONVERT(round(count(case when sq.LOANOVERDUE = ‘Y‘ then 1 else null end) / count(1) * 100, 2), char)‘%‘) bll 2 FROM fact_dkxx sq
由于连接的字符串中包含数字与百分比字符串,数据类型不一致,在xml中查询返回内容乱码,因此需要将数字使用CONVERT(number,char)函数转换字符类型连接。
2、MyBatis中 <if test="isfk != null and isfk != ‘ ‘ and isfk==‘1‘ ">标签过滤不执行
在mybatis中执行会过滤掉该if判断,但程序不报错会继续执行
应:将单个的字符放入双引号里面,外层用单引号 <if test=‘isfk == "1" ‘>
或者添加toString()方法 <if test="isfk == ‘1‘.toString() ">
原因分析:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,’1’会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。
以上是关于记一笔MyBatis的坑的主要内容,如果未能解决你的问题,请参考以下文章