在实际编写 <sqlMap> 的时候, 有些查询条件是共用的, 比如:
计算分页数量和查询分页数据的SQL Where 条件,那么,我们可以把它使用一个SQL标记起来提取成一个公用语句块。
比如:查询
<select id="listMessItemWithPage" resultMap="messResult" parameterClass="map">
select * from information_content_item
<include refid="MessItem_Where_Condition" />
order by id limit #start#,#rowsPerPage#
</select>
<select id="countMessItem" resultClass="int" parameterClass="map">
select count(*) from information_content_item
<include refid="MessItem_Where_Condition" />
</select>
共用SQL模块:
<sql id="MessItem_Where_Condition" >
<dynamic prepend=" WHERE ">
<isPropertyAvailable property="typeId">
<isNotEmpty property="typeId" prepend=" and ">
type_id = '$typeId$'
</isNotEmpty>
</isPropertyAvailable>
<isPropertyAvailable property="articleTitle">
<isNotNull property="articleTitle" prepend=" and ">
article_title like '%$articleTitle$%'
</isNotNull>
</isPropertyAvailable>
<isPropertyAvailable property="beginDate">
<isPropertyAvailable property="endDate">
<isNotNull property="beginDate" prepend="">
<isNotNull property="endDate" prepend=" and ">
(release_date between '$beginDate$' and '$endDate$')
</isNotNull>
</isNotNull>
</isPropertyAvailable>
</isPropertyAvailable>
<isPropertyAvailable property="releaseStatusTag">
<isNotEmpty property="releaseStatusTag" prepend=" and ">
release_status_tag = $releaseStatusTag$
</isNotEmpty>
</isPropertyAvailable>
<isPropertyAvailable property="beginHit">
<isPropertyAvailable property="endHit">
<isNotNull property="beginHit" prepend="">
<isNotNull property="endHit" prepend=" and ">
(visits between $beginHit$ and $endHit$)
</isNotNull>
</isNotNull>
</isPropertyAvailable>
</isPropertyAvailable>
</dynamic>
</sql>
分享到:
相关推荐
在使用iBatis(现为MyBatis)作为持久层框架进行开发时,有时我们需要调试SQL语句,以便查看执行的SQL、优化性能或者解决查询问题。本文将详细讲解如何在iBatis日志信息中打印SQL语句,以便更好地理解和优化数据库...
### iBatis中的动态SQL语句详解 #### 引言 在进行数据库操作时,我们经常需要根据不同的条件构建不同的SQL语句。这种需求在实际开发中极为常见,尤其是在处理复杂的查询逻辑时。iBatis(现在通常被称为MyBatis)...
本文主要探讨如何使用Log4j框架来记录Ibatis的SQL执行情况,以便更好地理解和优化数据库操作。 首先,Log4j是Apache的一个开源项目,它提供了一个灵活的日志系统,允许开发者定义日志级别、输出格式以及输出位置,...
iBatis动态SQL标签用法 iBatis是Java持久层框架,提供了动态SQL标签来实现动态查询。动态SQL标签可以根据不同的条件生成不同的SQL语句,从而提高查询效率和灵活性。 动态SQL片段 iBatis提供了动态SQL片段的功能,...
根据提供的文件信息,本文将对ibatis常用的SQL语句进行详细的解析与说明。这些SQL语句主要用于Oracle数据库中,涉及到了删除、插入以及查询等基本操作,并且在ibatis框架中实现了参数化处理。 ### 一、删除操作 ...
标题 "ibatis打印sql" 涉及到的是在使用iBATIS(一个轻量级的持久层框架)时如何调试和查看SQL语句的方法。iBATIS允许开发者编写SQL语句并将其与Java代码集成,以实现灵活的数据访问。在开发过程中,为了调试和优化...
《iBATIS 开发指南》和《iBATIS-SqlMaps》是两本关于Java开发领域中的重要框架——iBATIS的权威指南。这两本书详细介绍了如何使用iBATIS进行数据库交互,帮助开发者深入理解并熟练掌握这一持久层框架。 iBATIS,...
通过java程序查看ibatis配置文件中的sql语句(注:无法查看变量值)
在探讨ibatis中的动态SQL(Dynamic SQL)及`prepend`的使用时,我们首先需要对ibatis有一个基本的理解。ibatis是一种开源的数据访问层框架,它简化了Java应用程序与数据库之间的交互过程。通过使用XML配置文件来定义...
iBatis 动态 SQL 拼接 iBatis 框架中的动态 SQL 拼接是一种强大的功能,它允许开发者根据不同的条件生成不同的 SQL 语句,从而提高程序的灵活性和可维护性。在本文中,我们将深入分析 iBatis 框架中动态 SQL 的实现...
在本教程"08_传智播客ibatis教程_sql主键生成方式"中,你将会深入学习到如何在Ibatis中配置和使用上述各种主键生成策略,通过实例和代码讲解,帮助你更好地理解和掌握Ibatis在处理SQL主键生成方面的技巧和最佳实践。...
在本教程中,我们将详细介绍如何搭建一个基于Ibatis 2.3.4.726版本和SQL Server 2005的开发环境。Ibatis是一个轻量级的持久层框架,它允许开发者将SQL语句与Java代码分离,提高了数据库操作的灵活性。 首先,确保你...
iBATIS-SqlMaps-2-Tutorial_cniBATIS-SqlMaps-2-Tutorial_cn.pdf.pdfiBATIS-SqlMaps-2-Tutorial_cn.pdfiBATIS-SqlMaps-2-Tutorial_cn.pdf
标题与描述概述的知识点主要集中在iBATIS框架的SQL映射技术上,特别是针对不同类型的输入参数如何在iBATIS中构建SQL语句。以下是对这些知识点的详细展开: ### iBATIS SQL映射技术概览 iBATIS是早期流行的Java持久...
本教程将深入探讨如何使用MyBatis/iBatis自动生成SQLMapper脚本,以提高开发效率。 首先,SQLMapper是MyBatis的核心组成部分,它定义了与数据库交互的SQL语句和映射规则。通过自动生成这些映射文件,开发者可以避免...
[iBATIS]sql转换工具 简单哦~ 项目组自己写的哦~分享给大家了
IBATIS,作为一个轻量级的持久层框架,它为Java应用程序提供了数据库操作的支持,尤其在处理SQL映射方面表现出色。这个教程的目的是帮助读者理解并熟练掌握IBATIS的核心概念和技术。 首先,让我们了解一下什么是...
【标题】"webwork+ibatis+sqlserver2000"所代表的是一个基于WebWork框架、iBATIS持久层框架以及SQL Server 2000数据库的完整应用程序实例。这个组合在早期的Java Web开发中较为常见,用于构建企业级应用。 ...
在IT行业中,数据库操作是不可或缺的一部分,而Ibatis作为一个轻量级的持久层框架,它在处理SQL方面具有很高的灵活性。本教程“08_ibatis教程_sql主键生成方式”聚焦于Ibatis如何处理数据库主键的生成策略,这对于...
《iBATIS-SqlMaps-中文教程》是一个深入解析iBATIS框架的资源,适合对Java Web开发感兴趣的初学者和进阶者。iBATIS是一个持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,实现了SQL与Java代码的分离,简化...