SSM框架 mapper.xml中 value的空值判断问题
先看解决方案,其他的都是问题的出处
解决方案:if中使用 _parameter,#{value}不变
<if test="_parameter!='' and _parameter!=null">
join scm_product p on pt.ProductTypeID=p.ProductTypeID
where (p.ProductNameCN like concat('%',#{value},'%')
or p.ProductNameEN like concat('%',#{value},'%'))
</if>
问题由来:
由于最近项目转型,使用 java开发
使用ssm框架时,遇到一个问题。(java中,我也只能自认菜鸡了
)
问题:
先看一下数据库。
然后看看 mapper.xml
|
1
2
3
4
5
6
7
8
9
|
<select id="myTest" resultMap="BaseResultMap" parameterType="java.lang.String" > select * from scm_producttype pt <if test='value!="" and value!=null'> where TypeNameCN='test' </if> order by pt.ProductTypeID </select> |
很明显,我在myTest方法中增加了一个if标签。这里只是例子,判断了value不为""和null
最后我在测试中,调试信息为:
很奇怪,
当传值null,那么可以查询出2条数据。(说明mapper.xml中if跳过了)
当传值"",却只能查询1条数据。(说明mapper.xml中if没有跳过)
解决方案:
<if test="_parameter!='' and _parameter!=null">
join scm_product p on pt.ProductTypeID=p.ProductTypeID
where (p.ProductNameCN like concat('%',#{value},'%')
or p.ProductNameEN like concat('%',#{value},'%'))
</if>
SSM框架 mapper.xml中 value的空值判断问题的更多相关文章
- SSM框架mapper.xml模糊查询语句
SSM框架mapper.xml模糊查询语句 在用SSM框架时,如果想要实现模糊查询,可以在mapper.xml文件中进行数据库语句的书写,方法有很多种,在这里我选择了两种介绍: 方法1: <se ...
- ssm框架web.xml中filter配置问题
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://w ...
- 关于mybatis mapper.xml中的if判断
场景: 页面上有搜索框进行调节查询,不同搜索框中的内容可以为空. 过程: 点击搜索,前端把参数传给后台,这是后台要把为空的参数过滤掉. 做法: 通常我们在dao层即mapper.xml中进行过滤判断操 ...
- mapper.xml中动态sql抽取重复项
mabatis重点是通过标签对sql灵活的组织,通过配置的方式完成输入 输出映射. 1.对mapper.xml中重复的sql抽取统一维护,以及foreach使用 UserMapperCustom.xm ...
- 【mybatis】idea中 mybatis的mapper类去找对应的mapper.xml中的方法,使用插件mybatis-plugin
idea中 mybatis的mapper类去找对应的mapper.xml中的方法,使用插件mybatis-plugin,名字可能叫Free mybatis-plugin 安装上之后,可能需要重启ide ...
- 转载:MyBatis mapper.xml中使用静态常量或者静态方法
转自:https://my.oschina.net/wtslh/blog/682704 今天偶然之间刷到了这样一篇博客,有点意外 mybatis 还可以这样使用ONGL常量的方式,该方式针对 xml的 ...
- ssm框架整合,配置文件中的配置内容
转自:https://www.cnblogs.com/dong-dong-1/p/8724127.html 使用idea工具开发,用maven进行管理. 最近在写毕业设计,因为对ssm框架一直半解,常 ...
- java ssm框架 mapper文件里的#符号和$符号的区别
Java SSM框架里面,Mapper.xml文件 (一)#符号生成的sql语句是作为传参的 <!-- 获得数据列表(包括课程相关信息) --> <select id="G ...
- mapper.xml中的常用标签
mybatis的mapper xml文件中的常用标签 https://blog.csdn.net/qq_41426442/article/details/79663467 SQL语句标签 1.查询语句 ...
随机推荐
- 20155318 《网络攻防》 Exp9 Web基础
20155318 <网络攻防> Exp9 Web基础 基础问题 SQL注入攻击原理,如何防御 就是通过把SQL命令插入到"Web表单递交"或"输入域名&quo ...
- # 2017-2018-2 20155319『网络对抗技术』Exp6:信息收集与漏洞扫描
2017-2018-2 20155319『网络对抗技术』Exp6:信息收集与漏洞扫描 实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.O ...
- Verilog中的有符号计算之认知补码
Verilog中的有符号计数,一般是自己定义的而不是像C语言之类的定义一个有符号变量就好了.所以,要想在FPGA的世界里随心所欲的进行有符号运算,必须先对补码有一个很好的认知,然后再注意Verilog ...
- angular-ui-router速学
Demo1 初始化 <html ng-app="app"> <head> <style>.active { color: red; font-w ...
- CS100.1x-lab4_machine_learning_student
这是这门课第一次接触机器学习,主题是Predicting Movie Ratings.难度比上一次作业要简单点..上一次作业真的挺难...相关ipynb文件见我github. 这里我们会用到Spark ...
- async await使用
promise使用 var sleep = function (time) { return new Promise(function (resolve, reject) { setTimeout(f ...
- sql优化详细介绍学习笔记
因为最近在面试,发现sql优化这个方面问的特别特别的多.之前都是零零星星,不够全面的了解一点,刚刚在网上查了一下,从 http://blog.csdn.net/zhushuai1221/article ...
- Flutter - 创建侧滑菜单(不使用navigatior,仅改变content)
之前写过一篇文章,Flutter - 创建横跨所有页面的侧滑菜单.这个里面中使用了Navigator.of(context).push来导航到新的页面. 这次介绍一种不使用导航,仅仅改变content ...
- OpenGL(3)-三角形
写在前面 从这节开始,会接触到很多基本概念,原书我也是读了很多遍,一遍一遍去理解其中的意思,以及他们之间的关系. 概念 顶点数组对象:VAO 顶点缓冲对象:VBO 索引缓冲对象:EBO|IBO Ope ...
- 团队项目M1展示成绩和Week 10分数
根据M1项目评审的分数,分档打分得到的M1项目成绩.