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. python按修改时间顺序排列文件

    import os def sort_file_by_time(file_path): files = os.listdir(file_path) if not files: return else: ...

  2. Day6 Python常用的模块

    一.logging模块 一.日志级别 critical=50 error=40 waring=30 info=20 debug=10 notset=0 二.默认的日志级别是waring(30),默认的 ...

  3. 适用于 Windows 7 SP1、Windows Server 2008 R2 SP1 和 Windows Server 2008 SP2 的 .NET Framework 4.5.2 仅安全更新说明:2017 年 9 月 12 日

    https://support.microsoft.com/zh-cn/help/4040960/description-of-the-security-only-update-for-the-net ...

  4. 9.C# 类

    1.类定义格式 [访问修饰符]class 类名 [:父类名,接口名,接口名] { //类成员 } 类的访问修饰符有public.internal两个,没有标明访问修饰符默认为internal,被int ...

  5. T Y P E L I B R A R I E S库加载

    #---------------------------------------------------------------------------- # T Y P E L I B R A R ...

  6. cocos2d-x JS 富文本(为一段文本中的个别字体上颜色)

    setWinText : function (levelStr1,levelStr2,levelStr3,color1,color2) { var imgRankingBG = this.contai ...

  7. UVAL 4728 Squares(旋转卡壳)

    Squares [题目链接]Squares [题目类型]旋转卡壳 &题解: 听着算法名字,感觉挺难,仔细一看之后,发现其实很简单,就是依靠所构成三角行面积来快速的找对踵点,就可以省去很多的复杂 ...

  8. msyql 移动某一列数据到某列 & 字段加前缀

    #移动数据 UPDATE dcs_organize_user AS a, dcs_organize_user AS b SET a.SHORTTELNO=b.USERTELNO WHERE a.id= ...

  9. __init__.py的作用

    __init__.py 文件定义了包的属性和方法.其实它可以什么也不定义:可以只是一个空文件,但是必须存在.如果 __init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入 ...

  10. (转)Properties Editor为你解除通过native2ascii进行Unicode转码的烦恼

    在Java或J2EE应用程序的设置文件或国际化对应的桌面应用程序的开发中,广泛使用着属性文件.然而,你必须通过J2SDK中的native2ascii工具来将文件中的多字节字符转换成Unicode的字符 ...