mybatis 使用记录(二) 动态拼接查询条件

摘要:
此处为动态拼接查询条件。此处的写法跟搜索出的结果不同,此处应该是用了转义。

2016-12-16

阅读项目代码时,在项目的xml文件中发现如下写法:

SELECT
student_user_id
FROM
tbr_student_class

WHERE 1=1
<if test="@Ognl@isNotEmpty(classId)">
and class_id =#{classId}
</if>
<if test="@Ognl@isNotEmpty(stuId)">
and student_user_id =#{stuId}
</if>

写法的意思是:当参数:classId 不为空的时候,执行后面的条件 and class_id=#{classId}

该写法类似于在c#或java代码中,动态拼写sql语句。此处为动态拼接查询条件。

新问题:以上代码中的if条件语句里,参数判断用了转义?此处的写法跟搜索出的结果不同,此处应该是用了转义。尚待考证。

免责声明:文章转载自《mybatis 使用记录(二) 动态拼接查询条件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Jmeter性能测试插件jpgc的安装【最新揭秘】百度快收权限如何获得,教你一周快速获得快收权限下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用DexClassLoader动态加载dex文件

Java中也有类加载器ClassLoader,其作用是动态装载Class文件,当我们从网络下载Class文件,或者在编译时不参与而在运行时动态调用时就需要用类加载器。由于Android对class文件进行了重新打包和优化,最终APK文件中包含的是dex文件,加载这种文件就需要用到DexClassLoader。 DexClassLoader(dexPath,...

Echarts图表在VUE项目中使用动态数据源

动态数据源问题:目前我使用的方法是当后台查询到数据时,直接传递给option中的对应data内; 例如柱状图,可以直接将x轴数据注入到 this.option.xAxis.data 中,如 this.option.xAxis.data.push(res.result[i].属性) 其中括号内为获取的要注入的值,该条语句直接放置在循环中,将结果中的数据全部注...

对象建模

面向对象建模 建模:为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。 建模的目的:减少复杂性。 面向对象方法最基本的原则:按照人们习惯的思维方式,用面向对象观点建立问题域的模型,开发出尽可能自然地表现求解方法的软件。 用面向对象方法开发软件,通常需要建立3种形式的建模,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和...

python_30期【函数里面不定长参数/动态参数 *arges**关键字参数**kwargs】

#不定长参数/动态参数 *arges argument---arges 按这个规范 #把这个数据 转成元组形成 # def add(*args): # print(args) # print("arges的类型:",type(args)) # count=0 # for item in args: # cou...

lib和dll文件的初了解

lib,dll这两样东西在许多编程书中都很少出现,但实际工程中,这两样东西的作用确实非常重要,我觉得c++程序员都有必要了解这两样东西。 首先总共有 动态链接 和 静态链接 这两种链接方式 |静态链接:静态链接使用静态链接库lib,且只在源代码编译时用到(编译期)。编译生成静态库时会生成一个.lib文件.lib里面装载了各种类,函数的实现。这种静态链接的...

Oracle ORA12514 监听程序当前无法识别连接描述符中请求的服务

在连接数据库的时候,有时会遇到一个“ORA12514:监听程序当前无法识别连接描述符中请求的服务”的错误,这个错误其实就是数据库动态注册(关于动态注册会在稍后讲解)不生效,导致监听器无法识别客户端连接符中提供的服务名,从而拒绝建立数据库连接时报的错误信息,所以就需要对监听器配置做修改。 在这里,还需对问题进行细化,有时候可能会发现,在刚开启监听器的时候会发...