Mybatis 动态修改排序规则
2017-01-12 00:00
274 查看
一:理论
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 类型请慎重!
相关文章推荐
- 修改MYSQL的字符集和排序规则
- SQlserver 2005 修改排序规则方法
- SQL 修改排序规则
- 修改数据库的排序规则
- SQL 2008 R2手动修改指定数据库服务器排序规则
- 修改sql server服务器的排序规则
- sql server 2005/2008修改排序规则
- 批量修改数据库排序规则,含主外键
- 修改排序规则
- 修改sqlserver2008数据库的排序规则
- 数据库开发-sql2005如何修改排序规则的问题
- SQL server 2005 排序规则的修改
- SqlServer 2005 排序规则的修改
- SqlServer 2005 排序规则的修改
- SQL Server 排序规则 COLLATE 修改
- 关于数据库排序规则的修改
- sql2005如何修改排序规则
- SQL SERVER修改排序规则
- 修改SQLSERVER排序规则
- 修改sqlserver2008数据库的排序规则 (转)