`

iBatis中$和#的区别以及传参使用bean还是map

阅读更多

 

转自:

http://blog.csdn.net/zhongweijian/article/details/4494839

http://shenzhenchufa.blog.51cto.com/730213/254561 (这个页面详细讲解了如何使用iBatis)

 

1.#变量名#  会转化为 jdbc 的 ?, 比如 select * from user where name=#name# 会转化为jdbc的 select * from user where name=?,把?参数设置为name的值。

而$变量名$就直接把 $name$替换为 name的内容, 也就是由可能 select * from user where name=$name$ 如果name为 "' ' or 1 = 1", 那么这样就有可能导致sql注入,所以ibatis用#比$好,不会造成sql注入。

 

2.ibatis中的参数传入的值参数比较多,最好用bean方式传入,也就是通过set/get取值的方式给sql map注入参数,不要用hashmap结构传入,每次用hashmap传入会占用比较多的内容。如果参数少,用hashmap也比较方便简单。但是对传入参数的判断,用bean方式比较容易检测发现,配置也能够统一配置。

 

3.

 

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

#方式一般用于传入插入/更新的值或查询/删除的where条件。

 

 

 

 

 

分享到:
评论

相关推荐

    ibatis中 $ 于 # 的 区别

    ### ibatis中 $ 与 # 的区别 在ibatis(现称为MyBatis)框架中,$ 和 # 是两种不同的动态SQL元素标记,用于处理参数传递的问题。它们各自有着独特的功能和应用场景,对于理解这两者的差异是十分重要的,因为这会...

    Ibatis资料ibatai sql map iBATIS使用$和#的一些理解

    在iBATIS中,有两种主要的方式来处理这些参数:使用`$`和`#`。这两种方式在不同的场景下有不同的效果。 首先,让我们来看看如何通过HashMap传递SQL参数。当SQL Map接口只能接受一个参数,但我们需要传递多个参数时...

    ibatis中输入输出各种类型的参数分析及#与$区别

    ### ibatis中输入输出各种类型的参数分析及#与$区别 #### iBatis简介与特点 ...通过对参数类型、`#`与`$`的区别以及`namespace`和`resultMap`的理解,可以帮助开发者更好地利用iBatis框架构建高效稳定的数据库访问层。

    ibatis sql语句对条件中特殊字符% # 处理

    ### ibatis SQL语句对条件中特殊字符% # 处理 在开发过程中,经常会遇到SQL查询时需要处理字符串中的特殊字符的情况。特别是在使用类似`LIKE`这样的操作符时,如果用户输入的数据中含有`%`、`_`或`#`等特殊字符,...

    ibatis的sql-map dtd

    在Ibatis中,`sql-map`和`sql-map-config`是两个重要的XML配置文件,它们使用DTD(Document Type Definition)来定义其结构和规则。 DTD是XML文档类型定义,它定义了XML文档的合法构建块,包括元素、属性、实体等,...

    ibatis开发过程取值问题

    本篇文章将深入探讨Ibatis在开发过程中遇到的取值问题,以及“##”符号在其中的作用。 首先,让我们了解Ibatis的核心概念。Ibatis的主要目标是解决对象关系映射(ORM)的问题,它允许开发者编写XML或注解形式的SQL...

    ibatis环境搭建教程

    通过使用SQL Maps,可以将复杂的SQL语句映射到XML配置文件中,进而实现对Java Beans和SQL Statements之间的映射。这种映射机制简化了开发过程中的数据处理工作,并且提高了代码的可维护性。 - **优点**:SQL Maps...

    myBatis和ibatis的区别

    - **存储过程的支持**:在ibatis中,存储过程的调用使用`<procedure>`元素,而在myBatis中则使用`<select>`元素,并通过`statementType`属性指定为`CALLABLE`。 - **参数映射**:ibatis中的`<parameterMap>`元素用于...

    ibatis基础知识详解

    **Ibatis基础知识详解** Ibatis,全称MyBatis,是一个优秀的开源持久层框架,它支持定制化SQL、存储过程以及高级映射。在Java应用中,Ibatis可以帮助开发者将数据库操作与业务逻辑分离,从而简化开发工作,提高代码...

    ibatis中iterate的例子

    在iBatis中,`<iterate>`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、List或Map等,进行循环遍历并生成动态SQL语句。下面我们将详细探讨`<iterate>`标签的用法及其示例。 `<iterate>`标签的主要...

    操作数据库 iBATIS查询

    在iBATIS中,可以使用类似的方法来实现这样的查询。一种常见的错误写法是直接将`%`包含在SQL字符串中,如下所示: ```xml SELECT * FROM t_stu WHERE s_name LIKE #name# ``` 这种方式的问题在于,当调用查询时...

    ibatis 相关使用文档及安装包ibatis 相关使用文档及安装包

    在Java代码中,通过SqlMapClient对象来执行SQL Map中的操作,如插入、更新、删除和查询数据。此外,iBATIS支持动态SQL,可以实现根据条件动态生成SQL语句,大大增强了SQL的灵活性。 总的来说,这个压缩包提供了全面...

    iBatis文档\ibatis.doc

    iBatis 是一款轻量级的Java持久层框架,它主要负责将数据库操作与业务逻辑解耦,使得开发者可以更加专注于SQL和业务代码的编写。本文档将详细讲解iBatis的核心概念、快速入门以及高级特性。 ### iBatis 快速启动 #...

    J2EE学习 Ibatis开发资料共享 Ibatis开发资料 Ibatis学习框架 Ibatis开发概要

    Ibatis作为一款半自动化的ORM框架,虽然不如Hibernate等全自动化ORM框架那样易于使用,但在某些特定场景下能够提供更高的性能和更灵活的定制能力。通过对Ibatis的学习和实践,开发者不仅可以提高数据库操作的效率,...

    Spring+ibatis 保留ibatis事务的配置

    给定的XML配置文件展示了如何在Spring中配置ibatis数据源以及ibatis事务管理器。首先,注释掉的`BasicDataSource`部分是用来配置数据源的,这里没有启用,而是选择了使用JNDI数据源。实际生产环境中,通常会使用...

    spring+ibatis集成文档

    ### Spring与iBatis集成开发详解 #### 一、引言 在Java企业级应用开发领域,Spring框架因其强大的依赖注入(DI)和面向切面编程(AOP)能力而备受青睐;而iBatis(现称为MyBatis)则以其简洁的SQL映射功能而闻名。...

    ibatis总结 ibatis ibatis ibatis ibatis

    本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. Ibatis SQL映射: Ibatis的主要特点是通过XML或注解定义SQL映射文件,将SQL语句与Java对象绑定。例如,`<select>`标签...

    iBatis和Hibernate的区别

    ### iBatis与Hibernate的主要区别 #### 一、概述 iBatis与Hibernate都是Java领域内流行的ORM(Object-Relational Mapping,对象关系映射)框架,用于简化Java应用程序与数据库之间的交互。尽管它们有着相似的目标,...

Global site tag (gtag.js) - Google Analytics