MyBatis动态SQL
来源:互联网 发布:c语言long占几个字节 编辑:程序博客网 时间:2024/06/01 17:14
最近在项目里面,有市县区三级联动的图标问题,即订阅不同的地区,图表显示的数据就是不同的地区数据,因为工程持久层用的是MyBatis,所以在这里过程遇到的问题写下来,若能帮助他人,那真的是极好的。
在这里我用的是choose,when,otherwise标签,参数传递进来的是map格式,刚开始我是这样写的
<select id="getAge" parameterType="map" resultType="map"> select substr(DM,3,11)csny,substr(DM,1,1) xb,sum(amount)rs from ZBD_XQGL_RK where c_type = #{type} and LB = #{lb} <choose> <when test="substr(${area},4,6) !=00 and <pre name="code" class="html">substr(${area},6,8)==00"> and substr(s_area,1,6)||'000000'=#{area} </when> <when test="
substr(${area},4,6) !=00 and <pre name="code" class="html">substr(${area},6,8)==00">and s_area=#{area} </when> </choose> and substr(S_DATE,1,6) = #{tjsj} group by substr(DM,3,11),substr(DM,1,1),s_area </select>然后就是报错 说是ongl表达式错误 ,然后就上网找问题,说是test中“”内为字符了,不用加$EL表达式,直接就可以写变量名,同样的 substrate()函数也应该用String 的,所以正确的写法就成了这样
<select id="getAge" parameterType="map" resultType="map"> select substr(DM,3,11)csny,substr(DM,1,1) xb,sum(amount)rs from ZBD_XQGL_RK where c_type = #{type} and LB = #{lb} <choose> <when test="area.substring(4,6) !=00 and area.substring(6,8)==00"> and substr(s_area,1,6)||'000000'=#{area} </when> <when test="area.substring(4,6) !=00 and area.substring(6,8) !=00"> and s_area=#{area} </when> </choose> and substr(S_DATE,1,6) = #{tjsj} group by substr(DM,3,11),substr(DM,1,1),s_area </select>
0 0
- mybatis动态SQL语句
- MyBatis动态SQL
- MyBatis 动态SQL
- Mybatis 动态SQL
- MyBatis动态SQL
- MyBatis动态SQL完整版
- mybatis动态sql
- mybatis动态SQL语句
- mybatis动态SQL语句
- MyBatis的动态SQL
- MyBatis动态SQL
- MyBatis动态SQL
- MyBatis 动态SQL语句
- MyBatis动态SQL
- Mybatis组建动态SQL
- MyBatis 动态sql
- mybatis 动态SQL语句
- MyBatis动态SQL详解
- [TagCss]列表元素写法规范
- android 中 topbar 使用
- netstat 命令学习
- net.sf.json.JSONArray & net.sf.json.JSONObject
- 表连接(oralce、mysql、sql server)
- MyBatis动态SQL
- [Leetcode] Remove Duplicates from Sorted Array II
- 你的邮件营销是否成功 - 可能存在3大文案问题
- 如何设计一个 iOS 控件?(iOS 控件完全解析)
- 从程序员到CTO的Java技术路线图
- C++多态的实现方式总结
- eclipse以外关闭,打开闪退
- jQuery获取this当前对象子元素对象
- dojo标签淡出效果