文档章节

MyBatis 动态SQL与SQL片段

muzi1994
 muzi1994
发布于 2017/02/14 10:14
字数 228
阅读 7
收藏 0
点赞 0
评论 0

前言:在使用Mybatis中想将生成的sql片段插入到mappper.xml中的sqls

SQL片段引用方法一:将SQL片段当做参数,使用${}带入参数

DaoMapper:

int updateUserInfo(@Param("uuid2") String uuid2, @Param("updateStr") String updateStr);

mapper.xml

<update id="updateUserInfo" >

    update yxs_user_info set ${updateStr},update_date=now()

    where user_uuid = (select uuid from yxs_user_login_info where uuid2=#{uuid2})

</update>

参数uuid2值为ABC, updateStr值为  email = ”lhm1830**@163.com“,,最终MyBatis解析后的SQL为:

update yxs_user_info set  email = ”lhm18***@163.com“ ,update_date=now()   where user_uuid = (select uuid from yxs_user_login_info where uuid2="ABC")

注:

1. #{data}将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #{user_id},如果传入的值是ABC,那么解析成SQL时的值为order by "ABC"。

2. ${}将传入的数据直接显示生成在sql中。

3. #方式能够很大程度防止sql注入, $方式无法防止Sql注入。

4. 一般能用#的就别用$。

© 著作权归作者所有

共有 人打赏支持
muzi1994

muzi1994

粉丝 4
博文 86
码字总数 30965
作品 0
朝阳
【MyBatis框架】mapper配置文件-关于动态sql

动态sql 1.什么是动态sql mybatis核心 对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接、组装。 2.需求 用户信息综合查询列表和用户信息查询列表总数这两个statement的定义使...

Mysoft ⋅ 2015/09/18 ⋅ 0

Mybatis3.4.x技术内幕(十七):Mybatis之动态Sql设计原本(上)

上一篇博文中,介绍了可复用的sql片段,通过<include>标签进行引入,而<include>标签内一般存放的是静态sql,其实,sql片段也是可以放置动态sql标签内容。 1. Mybatis支持的动态sql及基本用法...

祖大俊 ⋅ 2016/08/20 ⋅ 2

MyBatis 实践 -动态SQL/关联查询

标签: Java与存储 动态SQL 动态SQL提供了对SQL语句的灵活操作,通过表达式进行判断,对SQL进行拼接/组装. if 对查询条件进行判断,如果输入参数不为空才进行查询条件的拼接. mapper 会自动处理...

hanqing280441589 ⋅ 2016/02/28 ⋅ 0

MyBatis 之 动态SQL

MyBatis 提供使用 ognl 表达式动态生成 SQL的功能。 1. if 2. where where 可以自动处理掉第一个拼接条件里的 and <!-- 动态 sql 查询用户信息 --> <select id="findUserByDynamicSql" para...

pradosoul ⋅ 2015/09/18 ⋅ 1

mybatis学习笔记(8)-动态sql

mybatis学习笔记(8)-动态sql 标签: mybatis [TOC] mybatis核心,对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接、组装。 if判断 mapper.xml 测试结果 1.注释掉方法中的 输出...

brianway ⋅ 2016/02/29 ⋅ 0

Mybatis3.4.x技术内幕(十六):Mybatis之sqlFragment(可复用的sql片段)

Mybatis目前最新版本为3.4.0,因此,我也将我的项目由3.3.1替换为3.4.0。在上一篇博文中,详细分析了Mybatis在使用foreach循环进行批量insert,返回主键id列表时,如果使用BatchExecutor,那...

祖大俊 ⋅ 2016/06/05 ⋅ 0

Mybatis(三)动态sql

当我们使用传统JDBC方法去写复杂的SQL语句的时候,需要去进行大量的拼接。常常会因为一个小错误如少写了一个空格导致错误,而且还很难找出错误的原因,Mybatis的动态SQL功能正是为了解决这些...

什么都不懂的小石 ⋅ 2017/12/03 ⋅ 0

mybatis $的内容是个动态sql可以吗?

项目里面有个需求,所有查询报表数据的sql配置在数据库中,然后在项目中直接使用${sql}来进行查询,就像这样子的: ${sql} 这样的对于简单点报表还可以,但是对于那种需要进行业务判断的sql...

打不死的程序猿 ⋅ 2016/04/01 ⋅ 2

mybatis学习笔记(2)-mybatis概述

mybatis学习笔记(2)-mybatis概述 标签: mybatis [TOC] 本文对mybatis做一个简单介绍,包括框架原理,执行过程,开发方法,输入输出映射以及动态sql,我会在后续的系列文章中一一详细说明 my...

brianway ⋅ 2016/02/27 ⋅ 0

Java面试----2018年MyBatis常见实用面试题整理

Java面试----2018年MyBatis常见实用面试题整理 1、什么是MyBatis? 答:MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。 2、讲下MyBatis的缓存 答:MyBatis的缓存分为一级缓存...

优惠券活动 ⋅ 04/29 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

聊聊spring cloud gateway的LoadBalancerClientFilter

序 本文主要研究一下spring cloud gateway的LoadBalancerClientFilter GatewayLoadBalancerClientAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springfram......

go4it ⋅ 25分钟前 ⋅ 0

详解:Nginx反代实现Kibana登录认证功能

Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制。毕竟X-Pack是商业版。 下面我将操作如何使用Nginx反向代理...

问题终结者 ⋅ 31分钟前 ⋅ 0

002、nginx配置虚拟主机

一、nginx配置虚拟主机可分为三种方式,分别为: 1、基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2、基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站...

北岩 ⋅ 34分钟前 ⋅ 0

shell脚本之死循环写法

最近在学习写shell脚本,在练习if while等流程控制时,突然它们的死循环写法是怎么样的?经过百度与亲测记录如下: for死循环 #! /bin/bashfor ((;;));do date sleep 1d...

hensemlee ⋅ 37分钟前 ⋅ 0

苹果的ARKit2.0有多可怕,看了就知道

序言 ARKit主要由三部分组成: 跟踪(Tracking) 跟踪是ARKit的核心组件之一,其提供了设备在物理世界中的位置与方向信息,并对物体进行跟踪,如人脸。 2.场景理解(Scene Understanding) 场...

_小迷糊 ⋅ 37分钟前 ⋅ 0

5.1 vim介绍 5.2 vim移动光标 5.3 ,5.4vim一般模式下移动光标,复制粘贴

vim命令 vim是vi的一个升级版;vim可以显示文字的颜色 安装vim这一个包vim-enhanced 如果不知道安装包,可以使用 命令下面命令来查看vim命令是那个包安装的。 [root@linux-128 ~]# yum prov...

Linux_老吴 ⋅ 41分钟前 ⋅ 0

vim一般模式

vim 是什么 vim是什么 ? 在之前接触Linux,编辑网卡配置文件的时候我们用过了vi ,vim简单说就是vi的升级版,它跟vi一样是Linux系统中的一个文本编辑工具。 如果系统中没有vim ,需要安装一...

李超小牛子 ⋅ 49分钟前 ⋅ 0

docker实战

构建企业级Docker虚拟化平台实战 重点剖析虚拟化和云计算概念; 分析Docker虚拟化的概念和原理; 从0开始实战Docker虚拟化平台; 基于Docker构建Nginx WEB服务器和CentOS虚拟机; 基于开源监...

寰宇01 ⋅ 58分钟前 ⋅ 0

vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、一般模式下复制粘贴剪切

VIM Vim 是 UNIX 文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff),语法高亮,全面的帮助系统,本地脚本(Vimscript),和便于选择的...

蛋黄Yolks ⋅ 今天 ⋅ 0

springboot+mockito测试controller层遇到的问题

使用MockitoJUnitRunner测试的一个例子,原来报错无法找到bean, 类似的异常如下:createBeanError..... 原因:是因为@Runwith使用了SpringRunner,应该修改为MockitoJUnitRunner 代码如下: ...

writeademo ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部