码迷,mamicode.com
首页 > 其他好文 > 详细

记一笔MyBatis的坑

时间:2019-12-20 16:46:17      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:不执行   if判断   count   char   内容   style   判断   div   返回   

记一笔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的坑

标签:不执行   if判断   count   char   内容   style   判断   div   返回   

原文地址:https://www.cnblogs.com/tangjiang-code/p/12073531.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!