`

Ibatis变量替换里面的$和#的区别

    博客分类:
  • Java
阅读更多

Ibatis 中的 # 和 $ 都用于修饰参数变量。

# : Ibatis 会进行编译,并且进行类型匹配。  

 

比如: xx 为字符串类型时,

 

你可以使用: select * from aa where xx = #we#

 

但是你使用: select * from aa where xx = $we$

 

则会抱错, 因为$只进行字符串的替换。

 

 

分享到:
评论

相关推荐

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

    接下来,我们讨论一下`$`和`#`的区别。通常情况下,`#`被用来防止SQL注入,它会将变量转化为预编译语句中的占位符。例如: ```sql select * from member where id = #id# ``` 当在Java代码中设置`id`为某个值时,...

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

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

    ibatis database 开发指南

    ibatis 的核心组件是 **SQL Map** 和 **DAO (Data Access Object)**。 - **SQL Map** 是一个 SQL 映射引擎,它将 SQL 语句与 Java 对象关联起来,实现了 SQL 语句的编写和执行的分离。 - **DAO (Data Access Object...

    iBATIS SQL Maps 开发指南

    相较于 JDO 或 Hibernate 这类 ORM 框架,iBATIS 的主要优势在于其简单性和灵活性。 #### 二、SQL Maps (com.ibatis.sqlmap.*) ##### 2.1 SQL Map 的概念 SQL Map 是 iBATIS SQL Maps 的核心组件,它利用 XML ...

    ibatis资料

    这里,`$name$`会被直接替换为变量`name`的值,且不会进行预编译。 ### `iterate`标签 `iterate`标签是Ibatis动态SQL中的一个强大工具,它用于迭代一个集合并生成相应的SQL片段。例如,假设我们需要根据一组ID来...

    ibatis资料pdf

    1. **创建SqlMapConfig.xml配置文件**:这是iBatis的核心配置文件,用于设置环境变量及事务管理等信息。 2. **定义映射文件**:每个数据表通常对应一个映射文件,如本例中的`Account.xml`,用于定义SQL语句及结果集...

    传智播客 ibatis 讲义 word版

    在本讲义中,我们将深入理解 Ibatis 的核心概念和配置,以及如何与 Oracle 数据库协同工作。 首先,使用 Ibatis 需要相关的 jar 包,包括 Ibatis 自身的库以及针对 Oracle 数据库的驱动。JDBC 配置是基础,包括 ...

    ibatis开发指南(中文版)

    - **SQL语句**:直接在XML中定义SQL语句,可以包含变量替换。 - **自动生成的主键**:支持插入数据后自动获取生成的主键。 - **存储过程**:支持调用数据库的存储过程,并处理返回结果。 - **parameterClass**:指定...

    sql语句中用问号代替参数

    参数化查询允许将变量值插入到SQL语句中,而不是直接将它们拼接到字符串中。问号是大多数数据库系统用来表示这些参数的占位符。例如,以下是一个简单的参数化SELECT语句: ```sql SELECT * FROM Users WHERE ...

    freemarker+struts2+ibatis入门学习摘要

    FreeMarker 使用简单的语法,允许开发者将变量和表达式插入到模板中,这些变量会在运行时被实际值替换。 【Struts2】 Struts2 是一个基于 MVC(Model-View-Controller)设计模式的 Java Web 框架,用于构建企业级...

    mybatis -3.1.1 中文

    - 在复制本文档中的代码示例时,请注意检查是否有特殊字符(如“引号”和连字符)被自动替换,这些特殊字符可能导致代码无法正常运行。 - 最好从官方提供的下载包或在线文档中复制代码,以确保代码的正确性。 - 如果...

    J2EE与数据库.docx

    #### 六、Ibatis 中 # 和 $ 的区别 **知识点解析:** Ibatis(现称为 MyBatis)中,`#` 和 `$` 用于指定参数的不同方式: - **#**:安全的方式,自动添加适当的转义字符,防止 SQL 注入攻击。 - **$**:直接替换参数...

    Java框架面试题总结

    spring中的BeanFactory与ApplicationContext的作用和区别?** - **BeanFactory**:基本的容器接口,提供了Bean的实例化、配置和管理功能。 - **ApplicationContext**:继承了BeanFactory的功能,并提供了更多的...

    程序员常见的WEB安全漏洞.pptx

    3. **利用框架功能**:iBatis中,使用`#`而不是`$`来绑定变量,以减少注入风险。如果无法避免使用`$`,应添加元数据标识以帮助框架识别。 **iBatis的SQL注入防范示例**: 1. 使用`#`符号进行参数绑定,如`select * ...

    mybatis老师总结

    - **${}**:字符串替换,直接将变量值插入到 SQL 语句中,不进行任何转换,容易导致 SQL 注入问题。 综上所述,MyBatis 是一个功能强大、灵活度高的持久层框架,特别适用于那些对数据库操作有特殊需求的应用程序。...

    java基础知识点67条

    - **子类替换父类**: 多态是指允许将子类型当作其父类型来使用的能力。这意味着可以将一个子类类型的指针赋值给一个父类类型的指针,或者可以将一个子类的对象赋值给一个父类的引用。 - **多态的好处**: 提高了代码...

    mybatis学习笔记

    - **#{}与${}**:区分预编译参数和文本替换。 - **传递简单类型**:如Integer等基本数据类型。 - **传递POJO对象**:复杂对象作为参数。 - **传递POJO包装对象**:使用包装类。 - **传递HashMap**:使用Map类型...

    数据库知识

    - 安装完成后,需配置客户端环境变量,如`ORACLE_HOME`、`TNS_ADMIN`等。 3. **配置Oracle客户端**: - 配置`tnsnames.ora`文件: - 文件路径通常为`D:\oracleClient\NETWORK\ADMIN\tnsnames.ora`。 - 示例配置...

    Parch 学习笔记系列(十七本)

    3. **正则表达式**:正则表达式是处理字符串的强大工具,广泛应用于数据验证和搜索替换。笔记将解析正则表达式的语法和模式,以及在不同编程语言中的应用。 4. **PLSQL基础**:PL/SQL是Oracle数据库中的过程化语言...

    spring mybatis 3.x 使用图文

    且Spring配置文件中设置了`default-autowire="byName"`,那么在解析加载bean定义阶段,如果`dataSource`中使用了占位符,可能会导致提前初始化部分类,此时`PropertyPlaceholderConfigurer`尚未替换定义中的变量,...

Global site tag (gtag.js) - Google Analytics