首页 > 数据库 >mybatis 动态sql语句拼接

mybatis 动态sql语句拼接

时间:2023-05-03 16:22:21浏览次数:42  
标签:语句 app 查询 拼接 sql mybatis

mybatis常用占位符的方式传递参数,比较安全,可以防止sql注入。
有些时候,特殊逻辑需要java封装好一些特殊的查询条件,然后和mybatis一起封装成特殊sql进行执行。

{param}:替换参数

${sql}:拼接sql语句。

遇到一些模板类的功能,例如用户选择查询条件,或者查询语句,就需要动态sql技术。

这个玩意本身在技术上是不安全的,需要全面的sql校验才能避免数据库的渗透。

一般业务禁止使用,特殊业务谨慎使用。

<select id="getAllAutoNodes" resultType = "com.wht.auto.group.NodeVO">
	select host_name as hostName 
	from t_node tn,t_tenant tt
	where tn.app_id=tt.app_id
	<if test='sql != null and sql !="" '>
	and ${sql}
	</if>
</select>

标签:语句,app,查询,拼接,sql,mybatis
From: https://www.cnblogs.com/hcgk/p/17369207.html

相关文章

  • mybatis格式化输出标签之trim标签
    trim属性主要有以下四个prefix:前缀覆盖并增加其内容suffix:后缀覆盖并增加其内容prefixOverrides:前缀判断的条件suffixOverrides:后缀判断的条件其实这个很少用,因为有对应的标签做处理。查询等同where标签功能<selectid="getAgentList"resultType="com.wht.demo.dao.vo.A......
  • mybatis格式化输出标签之where 标签
    复制copy是程序员提高效能的核心方式,但是由于有些知识陈旧了,年复一年的复制,而没有系统的知识学习,并不晓得还有更合理或者更优雅的写法。1=1这种东西很多项目很常见,但是应该被放进历史的垃圾桶的。<selectid="getAgentList"resultType="com.wht.demo.dao.vo.AgentVo"> s......
  • mybatis之OGNL表达式
    对象导航图语言(ObjectGraphNavigationLanguage),简称OGNL,是应用于Java中的一个开源的表达式语言(ExpressionLanguage)这里制作简单的了解,知道是什么。OGNL表达式OGNL常用表达式e1ore2e1ande2e1==e2,e1eqe2e1!=e2,e1neqe2e1<e2,e1lte2e1<=e2,e1l......
  • SQL Server(1)常用查询
    序言 结果集拼接左右横向拼接LEFTJOIN上线纵向拼接UNIONunion:得到两个查询结果的并集,并且自动去掉重复行。不会排序unionall:得到两个查询结果的并集,不会去掉重复行。也不会排序 YEARMONTH资料......
  • django.core.exceptions.ImproperlyConfigured: mysqlclient 1.4.3 or newer is requi
     1、在项目中__init__.py中这个报错原因,python3.5以上版本不支持这种方式frompymysqlimportinstall_as_MySQLdbinstall_as_MySQLdb()解决:importpymysqlpymysql.version_info=(1,4,3,"final",0)#指定了pymysql的版本:1.4.3,按照你版本修改pymysql.install_as_MySQLdb()......
  • 《SQLi-Labs》02. Less 6~10
    目录Less-6知识点题解Less-7题解Less-8题解Less-9知识点题解Less-10题解sqli。开启新坑。Less-6知识点布尔盲注。与Less-5基本相同。这里只简略写大致步骤。length()函数:返回字符串所占的字节数。ascii()函数:返回字符串最左字符的ASCII值。如果是空字符串,返回0。如......
  • idea创建SpringBoot项目报错For artifact {mysql:mysql-connector-java:null:jar}: Th
    Forartifact{mysql:mysql-connector-java:null:jar}:Theversioncannotbeempty.报错如图:pom.xml文件如图:添加版本号:就好了......
  • Springboot 之 Mybatis-plus 多数据源
    简介Mybatis-puls多数据源的使用,采用的是官方提供的dynamic-datasource-spring-boot-starter包的@DS注解,具体可以参考官网:https://gitee.com/baomidou/dynamic-datasource-spring-boot-starterpom.xml文件引入如下依赖主要引入dynamic-datasource-spring-boot-starter包<project......
  • [网络安全]sqli-labs Less-2 解题详析
    往期回顾:[[网络安全]sqli-labsLess-1解题详析](https://blog.csdn.net/2301_77485708/article/details/130410800?spm=1001.2014.3001.5502)判断注入类型GET1and1=1,回显如下:GET1and1=2,没有回显:说明该漏洞类型为整型注入。判断注入点个数GET1orderby3,回显如下:GE......
  • [网络安全]sqli-labs Less-3 解题详析
    判断注入类型GET1'and'1'='1,回显如下:GET1'and'1'='2:没有回显,说明该漏洞类型为GET型单引号字符型注入判断注入点个数GET1'orderby2--+,回显如下:由上图可知,sql语法中给$id加上了()猜测后端语句为SELECT*FROMxxwhereid=('$id')故构造GET1')orderby3-......