`
kaobian
  • 浏览: 211757 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

ibatis # $ 之间的差异

阅读更多

这是这段时间工作遇到的一个问题,在写模糊查询的时候我用的是 like '%$param$%',引起的问题是如果是param中含有特殊字符会早晨sql语法错误,如果改为like '%' || #param# || '%' ,这样则可以避免错误,原因是 #param# 这样翻译到jdbc时是 preparedstatement 去执行,而$param$ 则是statement ,里面的特殊符号没有进过转义,所以建议如果是在程序中自己写好的变量可以为$param$,从页面接受的参数一律为#param#

分享到:
评论
5 楼 maziheng 2011-05-24  
kaobian 写道
请问 防止sql 注入的 方法是什么?难道不是 讲sql中的 特殊字符 给转移掉吗? 例如 你写的是 select * from tablename  where name = 'xx'xx' ,这个分号不是特殊字符吗 是不是要 用\来转义?

select * from tablename where name='$param$';
如果你根据某一个字段值查询数据,当param为“' or '1'='1”会是什么情况
4 楼 kaobian 2011-05-17  
请问 防止sql 注入的 方法是什么?难道不是 讲sql中的 特殊字符 给转移掉吗? 例如 你写的是 select * from tablename  where name = 'xx'xx' ,这个分号不是特殊字符吗 是不是要 用\来转义?
3 楼 maziheng 2011-05-17  
$容易造成SQL注入,而且不对特殊字符进行转移,用#比较安全。
2 楼 sebatinsky 2011-05-17  
。。。学习了,没有遇到过。
1 楼 坏孩子 2011-05-15  
$param$是动态sql,#param#是绑定变量

相关推荐

    myBatis和ibatis的区别

    通过对ibatis与myBatis之间区别的详细分析,我们可以看到myBatis不仅继承了ibatis的优点,还在很多方面进行了改进和优化,使得其在功能性和易用性上都有了显著提升。对于开发者而言,选择myBatis作为持久层框架可以...

    iBatis和Hibernate的区别

    iBatis与Hibernate都是Java领域内流行的ORM(Object-Relational Mapping,对象关系映射)框架,用于简化Java应用程序与数据库之间的交互。尽管它们有着相似的目标,但在实现方式、设计理念等方面存在显著差异。 ###...

    iBatis文档

    这个文件可能会涵盖两者之间的主要差异,如何将现有的iBatis代码迁移至MyBatis,以及MyBatis的新特性和优势。 `iBATIS-SqlMaps-2_cn.pdf` 文件则很可能是iBatis 2.0的中文版官方文档,这对于初学者和开发者来说极其...

    ibatis 框架原理实现

    这个自己编写的Ibatis框架实现,虽然可能在功能上与官方版本有所差异,但基本原理和核心思想是一致的,即通过XML配置文件解耦SQL和Java代码,提供灵活的SQL映射和参数映射,以及方便的结果集映射,以此简化数据库...

    Ibatis Plugin

    8. **版本兼容性**:了解Ibatis Plugin是否兼容你当前使用的Ibatis版本非常重要,因为不同版本的Ibatis可能存在API或功能上的差异。 9. **定制化需求**:除了基本的实体类生成,Ibatis Plugin可能还支持用户自定义...

    ibatis-common.jar包

    2. **TypeHandler**:TypeHandler是Ibatis处理Java类型和数据库类型之间转换的关键接口。每个数据库字段类型都可能对应一个TypeHandler,用于将Java对象转化为SQL语句中的参数,或者将查询结果转化为Java对象。例如...

    ibatis2mybatis-master.zip

    描述中的“一键转换,不用自己再手动替换标签”意味着这个工具可以自动化处理iBATIS与MyBatis之间的转换工作,减少了开发者手动修改大量代码的时间和精力。通常,这样的转换涉及到的主要任务包括: 1. **XML配置...

    IBatis.DataMapper.1.6.2.bin.zip

    本篇文章将围绕"IBatis.DataMapper.1.6.2.bin.zip"和"IBatis.DataMapper.1.9"这两个开发包,深入探讨其核心概念、功能特性以及版本间的差异,帮助开发者更好地理解和应用这一框架。 1. **IBatis DataMapper简介** ...

    [iBATIS]sql转换工具

    在使用iBATIS时,可能会遇到SQL语句跨数据库平台的问题,因为不同数据库系统之间的SQL语法存在差异。例如,Oracle支持的`WITH`子句在MySQL中可能不适用,或者MySQL的`LIMIT`在Oracle中需要不同的实现方式。这时,一...

    ibatis2.3.4.8.jar 和 ibatis-2.3.4.726.jar两个版本的下载

    2.3.4.8.jar和2.3.4.726.jar这两个版本之间的差异主要体现在修复的bug、性能优化以及可能的功能增强上。尽管具体改动没有明确给出,但通常,版本号的更新意味着对先前版本的改进。例如,新版本可能会解决一些已知的...

    IBATIS.pdf

    随着iBATIS逐步放弃对DAO层的支持,转而倡导使用Spring和IoC原则,框架之间的整合变得更为紧密。通过将iBATIS的数据映射能力与Spring的依赖注入和事务管理功能结合,开发者可以构建出既灵活又强大的数据访问层。这种...

    IBatisVSHibernate

    标题 "IBatisVSHibernate" 暗示了我们将探讨两个知名的Java持久层框架——IBatis和Hibernate之间的差异和特点。这两个工具都是用于简化数据库操作的框架,但在设计理念和使用方式上有所不同。 **IBatis** 是一个轻...

    Hibernate和IBatis对比

    本文将深入探讨这两种框架的主要差异,并分析其各自的优缺点。 #### 二、概念介绍 1. **Hibernate**:当前最流行的ORM框架之一,提供了一种基于元数据的方式来进行对象与关系数据库之间的映射。Hibernate的核心...

    扩展 iBatis 以透明支持多种数据库

    标题 "扩展 iBatis 以透明支持多种数据库" 指的是在 iBatis 数据库持久层框架的基础上,通过一定的编程技巧和配置方法,使其能够灵活地适应不同的数据库系统,无需对应用程序代码进行大规模修改。iBatis 是一个轻量...

    axis1.4+ibatis2.3开发webservice服务[图解]

    这导致两者之间存在较大的架构差异。 - **兼容性问题**:Axis 2在某些特定场景下(如读取配置文件)表现不佳,而Axis 1.4则更为稳定可靠。 - **社区支持**:尽管Axis 2具有更多新功能,但考虑到其在某些方面的不稳定...

    ibatis 开发指南

    ibatis是一个开源的持久层框架,它简化了Java应用程序与数据库之间的交互过程。相较于其他全自动化对象关系映射(ORM)工具如Hibernate和Apache OJB,ibatis提供了一种更加灵活的方式来处理数据库操作,被形象地称为...

    ibatis数据库笔记

    虽然ibatis和Hibernate都是流行的ORM框架,但它们之间存在一些显著差异: - **控制程度**:ibatis提供了更多的控制权,特别是在编写SQL语句方面,而Hibernate则更加自动化。 - **学习曲线**:相对于ibatis,...

Global site tag (gtag.js) - Google Analytics