一、在ibatis的配置文件中,#,$等表示的意义是不同的。
举例来说明他们的应用:
DAO层代码赋值为:username=”abc” sortField=”ord1” ascending=”ASC”
<select id="getDestroyIdListLimit" parameterClass="java.util.Map" resultClass="String">
SELECT destroyId
FROM maildestroy
WHERE username = #username#
ORDER BY $sortField$ $ascending$
</select>
这样配置之后,最终在数据库执行的语句为:
SELECT destroyed FROM maildestroy WHERE username = 'abc ' ORDER BY ord1 ASC
通过上述比较之后,就不难看出:#符号的作用就是将传入的字符串参数前后自动加上’,传入的整形参数原封不动的放入到sql语句。
$符号的作用就是将传入的参数原封不动的放入到sql语句中。
这里特别强调一下,在进行排序的时候,一定要是使用$符号,而不是#符号。如果使用#符号之后,生成的sql语句就是:
SELECT destroyed FROM maildestroy WHERE username = 'abc ' ORDER BY 'ord1 ' 'ASC '
上述语句在执行的时候是不会报错的,但是此处的排序就会失效。因为这个问题造成的bug我刚刚就碰到过,相当隐蔽的bug,让我找得好苦。特此提醒大家注意。
二、Ibatis中like `%ibatis%`的写法实现模糊查询。假设需要传入参数name,那么在xml配置文件中对name进行模糊查询的写法有三种:
1、name like '%$name$%'
2、name like '%' || #name# || '%'
3、name like CONCAT('%', #name#, '%')
第一种方法就是运用了$符号的特殊意义来实现的,第二种方法中||则是xml配置文件中的字符串连接符,第三种方法中则是调用了mysql中的字符串连接函数来实现。
三、Ibatis中动态sql语句的配置,当我们不能确定传入的参数是否一定不为null或者空字符串“”,或者需要和特定的值进行比较的时候,我们就需要用到它的动态sql语句配置了。
<select id="getAllSign" parameterClass="sign" resultClass="sign">
SELECT * FROM sign
<dynamic prepend ="WHERE" >
<isNotEqual prepend="" property="isForce" compareValue="-1">
isForce=#isForce#
</isNotEqual>
</dynamic>
</select>
此处prepend表示:在动态语句之前,需要填写的字符串,此处是WHERE.
iBATIS动态查询几个常用属性
﹤ isPropertyAvailable ﹥ 属性是存在
﹤ isNotPropertyAvailable ﹥ 属性不存在
﹤ isNull ﹥ 属性值是null
﹤ isEmpty ﹥ 判断Collection.size ﹤ 1 或String.length()﹤1
﹤isEqual ﹥ 等于
﹤ isNotEqual ﹥ 不等于
﹤ isGreaterThan ﹥ 大于
﹤ isGreaterEqual ﹥ 大于等于
﹤ isLessThan ﹥ 小于
﹤ isLessEqual ﹥ 小于等于
在此处需要特别提出的是:传入的参数可以为自定义的对象,如这里的sign,也可以是java.util.Map,这两种情况在项目中都运用到了。
分享到:
相关推荐
标题 "Ibatis使用总结" 涉及到的是关于Ibatis这一流行的数据访问框架的实践经验与理解。Ibatis,作为一个轻量级的Java持久层框架,它弥补了JDBC在处理复杂SQL和对象关系映射方面的不足,允许开发者将SQL语句直接写在...
总结,Ibatis提供了灵活的SQL映射机制,使得开发人员能够更好地控制SQL的执行。同时,通过与Struts和Spring的整合,可以构建出强大的企业级应用。理解并熟练掌握这些知识点,对于提升Java Web开发的效率和质量至关...
总结起来,Ibatis 是一个轻量级的持久层框架,它允许开发者充分利用 SQL 语言的灵活性,同时简化了数据库操作。虽然它在某些方面不如 ORM 框架全面,但对于那些希望更直接控制 SQL 的开发者来说,Ibatis 是一个理想...
ibatis优点总结 ibatis优点总结
**Ibatis简介** Ibatis,又称为SQL Map,是一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,与Java代码进行分离,使得...了解并熟练掌握Ibatis的使用,对于提升Java开发效率和代码质量具有重要意义。
本文将深入探讨其中一个流行的选择——iBATIS,以及其在传智播客教程中的优点总结。 iBATIS,全称为“互联网应用程序基础工具包”(Internet Basics for Architecture with Transactions and SQL),是由Apache ...
在开始使用iBATIS时,需要配置几个关键的文件。首先是全局配置文件`SqlMapConfig.xml`,这个文件的作用是加载所有的SQL Map XML文件,并配置数据库连接、事务管理、缓存策略等。在`SqlMapConfig.xml`中,`...
**Ibatis小结** Ibatis,一款轻量级的Java持久层框架,是MyBatis的前身,由Clinton Begin在2003年创建。它致力于解决Java应用程序中的数据访问层(DAL)问题,提供了SQL映射框架,使得开发者可以直接编写SQL语句,...
通过使用IBATIS,开发者可以避免编写大量的数据访问层代码,简化数据库操作。 2. **主要组件** - **SQL Maps**:这是IBATIS的核心,它定义了对象与SQL语句之间的映射关系。SQL Maps通过XML文件描述实体对象与SQL...
在本文中,我们将深入探讨iBatis.net的使用,主要涉及以下几个核心部分: 1. **配置文件**: - **SqlMap.config**:这是iBatis的核心配置文件,类似于Web.config或App.config,用于配置iBatis的运行环境。它应该...
总结起来,iBATIS通过配置文件与SQL映射文件分离了业务逻辑和数据访问层,使得开发者可以灵活地编写SQL并控制数据库操作,同时保持代码的整洁和可维护性。在实际项目中,iBATIS可以很好地配合Spring等框架,提供更高...
09_ibatis教程_ibatis优点总结.zip 09_ibatis教程_ibatis优点总结.zip
### ibatis知识点总结 #### 简介 ibatis是一个开放源代码项目,起初由Clinton Begin在2001年发起。该项目最初关注的是密码软件的开发,但随着时间的发展,逐渐演变成一个基于Java的持久层框架。ibatis在2010年由...
这个小例子展示了如何在Visual Studio 2008中集成和使用iBATISNET。下面我们将详细探讨iBATIS在.NET中的使用方法,以及如何利用提供的文件进行实践。 首先,了解iBATIS的基本概念。iBATIS是一个轻量级框架,它的...
在IT行业中,Ibatis、Oracle...希望这篇总结能为你的学习之路提供有价值的指导,进一步深化你对Ibatis、Oracle和敏捷开发的理解。在IT世界中,持续学习和实践是提升自身能力的关键,祝你在技术探索的道路上越走越远。
下面是对iBatis的详细使用手册的知识点总结: 1. iBatis概述 iBatis是一种灵活的持久层框架,提供了一种可控的方式来实现类ORM解决方案。它不同于NHibernate那样具备全自动的数据操作,而是提供了一种灵活的方式来...
【ibatis学习总结】 在Java应用中,ORM(对象关系映射)框架是连接数据库与业务逻辑的关键。相比像Hibernate和Apache OJB这样的"一站式"ORM解决方案,iBATIS提供了一种更为灵活的"半自动化"策略。iBATIS允许开发者...
ibatis可以使用简单的XML或注解进行配置和原始映射,在代码内映射语句执行SQL。 ### 错误1:参数类型与属性不匹配 在ibatis中,`parameterClass`属性用于指定传递给SQL语句的参数类型。例如,在给定的部分内容中:...