MyBatis中#{ }和${ }的区别详解

1.#将传入的数据当成一个字符串,会对自动传入的数据加一个

双引号。

例如order by #id#,如果传入的值是111,那么解析成sql时变为order by “111”,如果传入的值是id,在解析成sql为order by “id”.

其实原来sql语句通常写成order by #{id} 与order by #id#的效果

一样。

2.$将传入的数据直接显示在sql语句中。例如order by${id},如果

传入的值则解析成sql语句为order by 9

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

$一般用于传入数据库对象,例如传入表名,

一般能用#就别用$

4.mybatis排序是用order by动态参数时需要注意,用$而不是用

#。

5.查询语句使用别名来解决,#{ }是spring表达式,${ }是el表达式。

---------------------------------------------------

6.Web Service : 一种可以接收从Internet或Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。

7.数据库优化应该遵循的层次

1.减少应用的请求(应用层)

2.降低数据库内部资源争用(数据库层)

3.降低输入输出数据和规模(内存)

4.优化输入输出处理能力(储存层)

5.如果做查询的时候尽量不要用*,尽量减少不必要的空间消耗。

优化查询:

1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要.2、纵向、横向分割表,减少表的尺寸(sp_spaceuse)3、升级硬件4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。

5、提高网速;6、扩大服务器的内存,Windows 2000和SQL server 2000能支持4-8G的内存。

7、增加服务器CPU个数;但是必须明白并行处理串行处理更需要资源例如内存。

8、如果是使用like进行查询的话,简单的使用index是不行的,但是全文索引,耗空间。

19、查询时不要返回不需要的行、列

等等

MyBatis中#{ }和${ }的区别,数据库优化遵循层次和查询方法的更多相关文章

  1. mybatis中的#{}和${}区别

    mybatis中的#{}和${}区别 2017年05月19日 13:59:24 阅读数:16165 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #use ...

  2. Mybatis笔记八:MyBatis中#{}和${}的区别

    先给大家介绍下MyBatis中#{}和${}的区别,具体介绍如下: 1. $将传入的数据直接显示生成在sql中 2. #方式能够很大程度防止sql注入. 3.$方式无法防止Sql注入. 4.$方式一般 ...

  3. 从Mybatis中#和$的区别到SQL预编译

    #和$的区别 Mybatis中参数传递可以通过#和$设置.它们的区别是什么呢? # Mybatis在解析SQL语句时,sql语句中的参数会被预编译为占位符问号? $ Mybatis在解析SQL语句时, ...

  4. mybatis 中#{}与${}的区别 (面试题)

    MyBatis/Ibatis中#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号. 如:order by #user_id#,如果传入的值是111,那么解析成sql时的 ...

  5. MyBatis中#{}和${}的区别详解

    首先看一下下面两个sql语句的区别: <select id="selectByNameAndPassword" parameterType="java.util.M ...

  6. 在mybatis中#{}和${}的区别

    文章目录 1.第一个#{} 2.第二个${} 3.区别 1.第一个#{} 解释: 使用#{}格式的语法在mybatis中使用preparement语句来安全的设置值 PreparedStatement ...

  7. mybatis中#{}和${}的区别

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

  8. spring中@param和mybatis中@param使用区别

    spring中@param /** * 查询指定用户和企业关联有没有配置角色 * @param businessId memberId * @return */ int selectRoleCount ...

  9. [入坑系列] Mybatis 中$与#的区别

    1.理解 1 #是将传入的值当做字符串的形式,eg:select id,name,age from student where id =#{id},当前端把id值1,传入到后台的时候,就相当于 sel ...

随机推荐

  1. 关于PHP将对象数据写入日志的问题

    有时候在调试项目的时候,需要将一个对象或者对象的实例记录下来观察数据,如果用json_encode可能拿到的是空数据, 此时,改为使用 $data = print_r($data,1); 然后将 $d ...

  2. 【UML】NO.49.EBook.5.UML.1.009-【UML 大战需求分析】- 包图(Package Diagram)

    1.0.0 Summary Tittle:[UML]NO.49.EBook.1.UML.1.009-[UML 大战需求分析]- 包图(Package Diagram) Style:DesignPatt ...

  3. [LeetCode] 661. Image Smoother_Easy

    Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother t ...

  4. [LeetCode] 824. Goat Latin_Easy

    A sentence S is given, composed of words separated by spaces. Each word consists of lowercase and up ...

  5. python class 1

    //test.py class Employee: 'all employee' empCount = 0 def __init__(self, name, salary): self.name = ...

  6. C# 指定http请求使用Tls1.2

    转载于 https://blog.csdn.net/yanghaitian/article/details/77498872 客户端语言 版本 类库 是否支持 兼容方案   Java 1.6.115之 ...

  7. VUE中过了一遍还不熟悉的东西

    1.computed/watch/和methods computed是依赖于数据来变动的,有缓存,当不需要缓存的时候就用方法,watch不建议乱用,当有异步请求的时候就用watch 写法一样 2.wa ...

  8. ideal使用eclipse快捷键

    1.修改使用Eclipse风格的快捷键目的是习惯了使用eclipse的快捷键,在使用IDEA时不想重头记一套新的快捷键.按照下面的顺序操作File --> settings --> key ...

  9. JavaScript学习笔记之call和apply

    前端的知识面太广了,想要记住所有知识点是不可能的,所以将这些学过的记录下来,随时都可以翻开来参考 1.call方法 调用一个对象的一个方法,call(this, arg1, arg2,argN);用来 ...

  10. 如何用vue组件做个机器人?有趣味的代码

      <!DOCTYPE html> <html lang="en"> <div>     <meta charset="UTF- ...