iBATIS动态查询的实现主要是在iBATIS中使用安全的拼接语句,动态查询
iBATIS比JDBC的优势之一,安全高效
iBATIS动态查询实例:(说明文字在注释中)
﹤ select id ="selectAllProducts" parameterClass ="Product" resultMap ="ProductResult" ﹥
select id,note from Product
﹤ dynamic prepend ="WHERE" ﹥
﹤!-- isNotNull判断参数是否存在,Integer类型 --﹥
﹤ isNotNull property ="id" ﹥
﹤!-- isGreaterThan判断参数是否大于compareValue,isGreaterEquals是大于等于 --﹥
﹤ isGreaterThan prepend =" and " property ="id" compareValue ="0" ﹥
id = #id#
﹤/ isGreaterThan ﹥
﹤/ isNotNull ﹥
﹤!-- isNotEmpty判断字串不为空,isEmpty可以判断字串为空 --﹥
﹤ isNotEmpty prepend =" and " property ="note" ﹥
﹤!-- 模糊查询不能用#,#在是用prepareStatement的?插入参数,$是文本替换 --﹥
note like '%$note$%'
﹤/ isNotEmpty ﹥
﹤/ dynamic ﹥
﹤/ select ﹥
iBATIS动态查询解释:
用Map传参数
﹤ select id ="selectAllProducts" parameterClass ="java.util.HashMap" resultMap ="ProductResult" ﹥
select id,note from Product
﹤ dynamic prepend ="WHERE" ﹥
﹤!-- isPropertyAvailable判断属性是否有效 --﹥
﹤ isPropertyAvailable property ="id" ﹥
﹤ isNotNull property ="id" ﹥
﹤!-- isLessThan判断参数是否小于compareValue,isLessEquals是小于等于 --﹥
﹤ isLessThan prepend =" and " property ="id" compareValue ="10" ﹥
id = #id#
﹤/ isLessThan ﹥
﹤/ isNotNull ﹥
﹤/ isPropertyAvailable ﹥
﹤/ dynamic ﹥
﹤/ select ﹥
iBATIS动态查询几个常用属性
﹤ isPropertyAvailable ﹥ 属性是存在
﹤ isNotPropertyAvailable ﹥ 属性不存在
﹤ isNull ﹥ 属性值是null
﹤ isEmpty ﹥ 判断Collection.size ﹤ 1 或String.length()﹤1
﹤isEqual ﹥ 等于
﹤ isNotEqual ﹥ 不等于
﹤ isGreaterThan ﹥ 大于
﹤ isGreaterEqual ﹥ 大于等于
﹤ isLessThan ﹥ 小于
﹤ isLessEqual ﹥ 小于等于
分享到:
相关推荐
与Hibernate和Apache OJB等一站式ORM解决方案不同,iBATIS允许开发者更自由地控制SQL查询,提供了更高的灵活性。这个框架由SQL Maps和Data Access Objects (DAOs)两个主要组件构成,还有一些辅助工具。 **SQL Maps*...
iBATIS 是一款轻量级的Java持久层框架,它主要负责对象关系映射(Object-Relational Mapping,简称O/R Mapping),使得开发者可以将关注点集中在业务逻辑上,而无需过多地处理数据库操作的细节。与Hibernate等其他...
iBatis批处理实现方式浅析 iBatis是一个功能强大的持久层框架,提供了多种方式来实现批处理操作。批处理是指将多个SQL语句组合成一个批处理单元,然后将其执行到数据库中,以提高数据库操作的效率。在iBatis中,...
1. **联合查询的使用.jpg**:这可能是一个关于iBatis如何实现多表联合查询的示例。在iBatis中,可以通过和标签来定义复杂的SQL查询,包括JOIN操作,以此来获取多个表的数据。 2. **iBATIS.in.Action.pdf.lnk**:这...
它不仅继承了Struts1在MVC模式上的成功实践,还吸取了WebWork框架的动态方法调用和拦截器链机制的优点,实现了更高级别的组件化和模块化,使得开发者能够以更少的代码量构建更为复杂的应用。 #### 三、Struts2的...
包括Struts2的核心概念、表单验证、国际化实现、拦截器、IOC模式探讨、Struts2标签的使用、OGNL表达式语言、文件上传下载功能、视图的浅析、与AJAX、Hibernate、Spring、iBatis、JQuery等技术的集成以及具体的应用...
- **Struts2与iBatis集成**:指导如何在Struts2项目中引入iBatis,实现数据持久化层的开发。 #### 十六、其他集成 - **与其他技术集成**:探讨Struts2与更多技术栈的集成方案,如RESTful Web Services、SOAP Web ...
- **操作CSS**:演示如何使用jQuery进行CSS样式的动态修改。 - **操作DOM**:介绍如何利用jQuery进行DOM元素的选择、添加、删除等操作。 - **处理文本**:演示jQuery处理文本内容的方法。 - **处理XML/JSON**:讨论...
11. 视图浅析:Struts2将视图实现的细节留给开发者,可以使用JSP、Freemarker、Velocity等模板引擎来实现。 12. 集成AJAX:Struts2可以与AJAX技术相结合,提供丰富的JavaScript支持,包括对JSON的支持,以实现异步...
值得注意的是,早期的ibatis与Spring的整合由Spring官方提供,但现在MyBatis已经提供了与Spring的整合支持。 整合配置是整个过程中关键的一步。首先,我们需要在`applicationContext.xml`中配置SqlSessionFactory和...
IBATIS是一个流行的持久层框架,Struts2可以通过简单的配置来与IBATIS进行集成。 #### 13.1 集成HIBERNATE HIBERNATE是一个强大的对象关系映射(ORM)框架,可以轻松地与Struts2集成,提供数据库操作的支持。 ###...
- **Struts2中OGNL**:解释如何在Struts2中利用OGNL表达式来动态绑定数据。 - **OGNL使用示例**:通过具体例子展示OGNL的应用场景。 #### 九、上传下载 - **文件上传**:介绍如何使用Struts2进行文件上传。 - **...
- **3.1 Struts2的体系结构**:MVC架构下的具体实现方式,包括模型(Model)、视图(View)、控制器(Controller)各自的作用。 - **3.2 Struts2配置文件**:主要讲解`struts.xml`文件的作用、格式及配置项。 - **3.3 ...