文档章节

Mybatis 动态修改排序规则

风雪满弓刀
 风雪满弓刀
发布于 2017/01/12 16:03
字数 335
阅读 105
收藏 0

一:理论

1:#是将传入的值当做字符串的形式

    例如 :select * from 表名 where id =#{id}

     解析:select* from student where id ='1'.

 2 :$是将传入的数据直接显示生成sql语句

    例如 :select * from 表名 where id =${id}

     解析:select* from student where id =1.

 3 :使用#可以很大程度上防止sql注入。(语句的拼接)

 4: 但是如果使用在order by 中就需要使用 $.

 5 :在大多数情况下还是经常使用#,但在不同情况下必须使用$. 

    #与$ 的区别最大在于:#{} 传入值时,sql解析时,参数是带引号的,而

                                      ${} 传入值时,sql解析时,参水是不带引号的。

    在mybatis中的$与#都是在sql中动态的传入参数。

二:使用$与#

   #{}: 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符(?),一个 #{ } 被解析为一个参数 占位符 。

   ${}: 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换。

 例如:  select * from student where name=#{value}   -- name='cy'

          select * from student where name=${value}    -- name=cy

三:总结

      如果是 参数 一般使用 #{} 例如 字段,limit 的也可使用

      如果是 sql 本身条件为动态,使用 ${} 例如 order by ,limit 的也可使用

      Interger 类型  都可使用,String 类型请慎重!

© 著作权归作者所有

上一篇: FastJSON
下一篇: Mybatis 日志打印
风雪满弓刀
粉丝 1
博文 63
码字总数 35922
作品 0
海淀
程序员
私信 提问
mybatis-plus 2.1.9 发布,代号:怀念

mybatis-plus 是一款 mybatis 动态 SQL 自动注入 mybatis 增删改查 CRUD 操作中间件。让 mybatis 拥有 hibernate 的单表高效,也保留 xml sql 的灵动, 减少你的开发周期优化动态维护 xml 实...

青苗
2018/01/29
4K
34
MyBatis常用SQL语句整理笔记

最近使用Mybatis作为持久层框架,自然/动态sql写得也比较多了,最常见的就是在查询语句中使用if标签来动态地改变过滤条件。 Mybatis强大特性之一就是它的动态sql,免除了拼接sql带来的各种麻...

6pker
2015/09/15
1K
0
mybatis-plus 2.1.1 新增 mybatis 多租户 SQL 解析功能

mybatis-plus 是一款 mybatis 动态 SQL 自动注入 mybatis 增删改查 CURD 操作中间件。让 mybatis 拥有 hibernate 的单表高效,也保留 xml sql 的灵动。 代号: 真正身份是改变社会风气,风魔...

青苗
2017/09/12
6.7K
13
jboss规则引擎KIE Drools 6.3.0-高级讲授篇

在生产环境怎么用BRMS 回溯BRMS开发教程中的那张“业务变现加速器”架构图,考虑下面的问题 业务开发人员开发规则 IT人员提供FACT 关键在于“全动态” SQL语句改了怎么办?不重启 DAO层改了怎...

lifetragedy
2017/03/07
0
0
Sharding-JDBC/sharding-jdbc

Sharding-JDBC - 为分库分表而生的数据库访问层微服务框架 中文主页 概述 Sharding-JDBC定位为轻量级java框架,使用客户端直连数据库,以jar包形式提供服务,未使用中间层,无需额外部署,无...

Sharding-JDBC
2016/12/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
昨天
64
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
昨天
26
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
昨天
43
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
昨天
27
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
昨天
44
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部