Ibatis基础知识:#与$的差别
背景
Ibatis是一个轻量级、非侵入式的持久层框架,适用于范围较广、较轻便……当然,不管J2EE中哪一个持久层框架,都会基于JDBC(不细究JNDI方式)。我们在SqlMap中编写SQL,利用各种SqlMap标签处理业务逻辑,利用參数标记传递參数。
在实际开发过程中,弄明确#号和$号的差别非常重要,以下我们就来分析一下这两个SqlMap參数标记。
參数标记
#号方式
解析以#号标记的參数时。Ibatis直接利用JDBC提供的參数标记(?号),将内存中的參数传递给数据库。这时,我们需要保证Java对象參数的数据类型。与数据库字段的參数类型相匹配。 长处:自适应数据类型。防注入式攻击
缺点:受JDBC參数标记限制,仅仅能用于Where条件、Case...When语句
$号方式
解析以$号标记的參数时,Ibatis将Java对象參数以字符串方式进行替换,相当于直接写在SQL语句里。
长处:灵活简便;不受JDBC參数标记限制。可用于随意SQL语句位置
缺点:须要注意数据类型,也就是自己加入单引號。须要防范注入式攻击
小结
这两种參数标记相辅相成,为了解决不同问题而生,我们会用对、用好。
Ibatis基础知识:#与$的差别的更多相关文章
- iBatis基础知识
iBatis简介: 特点:结构性好,小巧,容易上手 搭建环境: 1.创建java 项目 2.导入(3个)jar包:ibatis-2.3.0.667.jar,mysql驱动包,Junit测试包 3.配置 ...
- Mybatis/ibatis基础知识
Tip:mapper.xml中sql语句不允许出现分号! 1.#和$符号的区别 #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是 ...
- Oracle数据库基础知识
oracle数据库plsql developer 目录(?)[-] 一 SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外 ...
- C++ 顺序容器基础知识总结
0.前言 本文简单地总结了STL的顺序容器的知识点.文中并不涉及具体的实现技巧,对于细节的东西也没有提及.一来不同的标准库有着不同的实现,二来关于具体实现<STL源码剖析>已经展示得全面细 ...
- 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用
在花了不少时间研究学习了MongoDB数据库的相关知识,以及利用C#对MongoDB数据库的封装.测试应用后,决定花一些时间来总结一下最近的研究心得,把这个数据库的应用单独作为一个系列来介绍,希望从各 ...
- JavaScript基础知识整理
只整理基础知识中关键技术,旨在系统性的学习和备忘. 1.在 JScript 中 null 和 undefined 的主要区别是 null 的操作象数字 0,而 undefined 的操作象特殊值NaN ...
- 如何看K线图基础知识
在日K线图中一般白线.黄线.紫线.绿线依次分别表示:5.10.20.60日移动平均线,但这并不是固定的,会根据设置的不同而不同,比如你也可以在系统里把它们设为5.15.30.60均线. 你看K线图的上 ...
- 网络基础知识、ASP.NET 核心知识(1)*
为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...
- 【分享】4412开发板-嵌入式Linux开发须要掌握的基础知识和技能
本文转自迅为电子论坛:http://www.topeetboard.com 1.Linux 基础 安装Linux操作系统 Linux文件系统 Linux经常使用命令 Linux启动过程具体解释 熟悉L ...
随机推荐
- [JSP]JSP中include指令和include动作的差别
include指令是编译阶段的指令,即include所包括的文件的内容是编译的时候插入到JSP文件里,JSP引擎在推断JSP页面未被改动,否则视为已被改动. 因为被包括的文件是在编译时才插入的.因此假 ...
- Android -- SDcard文件读取和保存
背景 一些东西可以 ...
- win10 右键发送到 目录
win10 右键发送到 目录 C:\Users\llskj\AppData\Roaming\Microsoft\Windows\SendTo C:\Users\llskj\AppData\Roamin ...
- 【ACM】杭电ACM题一直WA求高手看看代码
数据测试了好几个都没问题,可以就是WA不让过,检测了2个小时还是没发现有什么问题T_T!!求高手看看代码,小弟在此谢谢各位哦! #include <stdio.h> #include &l ...
- 记录一下自己常用的maven工程的pom.xml模板
1. 带有hadoop-CDH4.2.1的pom.xml模板 <?xml version="1.0" encoding="UTF-8"?> < ...
- Unable to resolve superclass of
因为用了和Google map相关的类,而Google map是单独的library,需要导入之后才能使用,因此在manifest.xml文件中的<application></app ...
- 微信小程序 - 更改radio和checkbox选中样式
点击下载源码:示例-更改radio或checkbox选中样式
- 当Activity继承AppCompatActivity如何实现隐藏标题栏与状态栏
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); g ...
- Flume-0.9.4数据插入HBase-0.96
来自:http://blog.csdn.net/iam333/article/details/18770977 最近由于业务需要,需要将flume的数据插入HBase-0.96,利用flume的实时日 ...
- VB LISTBOX属性
additem 添加属性 listcount总记录数 listindex索引值 Private Sub Form_Load()List1.AddItem "广东省广州市"List1 ...