`
qieyi28
  • 浏览: 157544 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ibaties 动态拼接

 
阅读更多
动态拼接实例,这样不用写存储过程也能实现灵活拼接,注意这里用了isEqual标签


01.<?xml version="1.0" encoding="UTF-8"?>  
02.<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"   
03.    "http://ibatis.apache.org/dtd/sql-map-2.dtd">  
04.<sqlMap namespace="commons">  
05.    <!-- 定义综合查询前缀,后缀sql -->  
06.    <sql id="prefixSql">  
07.        <dynamic>  
08.            <isEqual property="doCount" compareValue="true">  
09.                select count(*) from (  
10.            </isEqual>  
11.            <isEqual property="doCount" compareValue="false">  
12.                SELECT * FROM (select row_.*, rownum start_rownum_ from  
13.                (  
14.            </isEqual>  
15.        </dynamic>  
16.    </sql>  
17.    <sql id="suffixSql">  
18.        <dynamic>  
19.            <isEqual property="doCount" compareValue="true">)</isEqual>  
20.            <isEqual property="doCount" compareValue="false">  
21.                <![CDATA[ 
22.                    ) row_ WHERE rownum <= #startIndex# + #pageSize# )  WHERE start_rownum_ > #startIndex#     
23.                ]]>  
24.            </isEqual>  
25.        </dynamic>  
26.    </sql>  
27.    <sql id="countPrefix">select count(*) from (</sql>  
28.    <sql id="countSuffix">)</sql>  
29.    <sql id="pagePrefix">  
30.        <dynamic>  
31.            <isNotNull property="pageSize">  
32.                SELECT * FROM ( select rownum r, union_tb.* from (  
33.            </isNotNull>  
34.        </dynamic>  
35.    </sql>  
36.    <sql id="pageSuffix">  
37.        <dynamic>  
38.            <isNotNull property="pageSize">  
39.                <![CDATA[ 
40.                    ) union_tb  
41.                ) WHERE r > #startIndex# AND r <= #startIndex# + #pageSize# 
42.                ]]>  
43.            </isNotNull>  
44.        </dynamic>  
45.    </sql>  
46.</sqlMap>  
分享到:
评论

相关推荐

    ibatis拼接字符串

    在本篇文章中,我们将深入探讨如何使用 Java 编程语言结合 iBatis 框架进行 SQL 字符串的动态拼接。通过分析提供的代码片段,我们可以了解到在实际开发过程中,这种动态 SQL 的构建方式非常常见,尤其是在处理复杂的...

    ibatis中使用安全的拼接语句,动态查询,大于、小于、等于.doc

    iBatis 中使用安全的拼接语句、动态查询、大于、小于、等于 iBatis 是一个流行的持久层框架,提供了许多强大的功能来帮助开发者构建高效、安全的数据库交互应用程序。本文将详细介绍 iBatis 中使用安全的拼接语句、...

    ibatis企业开发报表前调试(日志,复杂sql动态拼接)

    本篇将详细介绍如何利用日志来调试Ibatis中的复杂SQL动态拼接。 首先,了解Ibatis的日志系统是关键。Ibatis默认集成了几种常见的日志实现,如Log4j、Logback和Java内置的日志框架。在项目中,我们需要配置相应的...

    ibatis 连接字符串 SqlMapConfig.xml

    标题中的“ibatis 连接字符串 SqlMapConfig.xml”指的是使用iBATIS(一个轻量级的Java持久层框架)时,配置数据库连接的关键文件——SqlMapConfig.xml。这个文件是iBATIS的核心配置文件,它包含了数据源、事务管理器...

    ibatis中iterate的例子

    在iBatis中,`&lt;iterate&gt;`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、List或Map等,进行循环遍历并生成动态SQL语句。下面我们将详细探讨`&lt;iterate&gt;`标签的用法及其示例。 `&lt;iterate&gt;`标签的主要...

    ibatis动态注入

    这些动态元素使得SQL语句可以根据传入的参数值动态地调整,避免了大量IF-ELSE语句或者字符串拼接,提高了代码的可读性和可维护性。 首先,我们来看一个简单的例子。以下是一个查询用户列表的SQL映射: ```xml ...

    ibatis、mybatis官方教程文档集合(含Manning.iBATIS.in.Action)

    Manning.iBATIS.in.Action.Jan.2007.eBook-BBL.pdf MyBatis 3 User Guide Simplified Chinese.pdf MyBatis-3.0.3-Migrations.pdf MyBatis-3.0.3-User-Guide.pdf MyBatis-3-Migrations.doc MyBatis-3-Migrations.pdf ...

    ibatis基本操作数据库

    在描述中提到的问题,"iBatis.net拼接字符串不能直接拷贝然后在dbms里执行",这实际上涉及到iBatis动态SQL的概念。iBatis并不鼓励直接复制SQL字符串到数据库管理系统(DBMS)进行执行,因为这样会丧失iBatis的一些...

    ibatis的动态查询

    ### ibatis的动态查询知识点详解 #### 一、模糊查询 **知识点1:** 在进行模糊查询时,ibatis支持两种不同的语法标记:`#` 和 `$`。 1. **使用 `$value$` 进行模糊查询:** - 在进行模糊查询时,使用 `$value$` ...

    ibatisDemo 入门源码

    1. 动态SQL:Ibatis支持在XML或注解中编写动态SQL,根据条件灵活拼接SQL。 2. 缓存:提供本地缓存和二级缓存,提高数据读取速度。 3. 参数映射:通过`@Param`注解或`&lt;param&gt;`标签实现参数绑定。 4. 结果映射:通过`@...

    ibatis基础知识详解

    Ibatis支持动态SQL,允许在XML配置文件中根据条件拼接SQL语句,极大地提高了SQL的灵活性和可维护性。 #### 3.2 参数映射 Ibatis能自动将Java对象的属性值映射到SQL语句的参数,反之也能将查询结果映射到Java对象。...

    ibatis小例子Demo

    2. **动态SQL**:Ibatis允许在XML映射文件中直接编写条件语句,如`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;`等标签,实现SQL的动态拼接,增加了灵活性。 3. **Mapper接口**:Ibatis提供Mapper接口方式,可以将...

    ibatis教程 输入参数详解

    ibatis还支持动态SQL语句,可以根据业务逻辑动态生成SQL语句。例如,使用`&lt;if&gt;`元素可以实现条件判断,`&lt;choose&gt;`, `&lt;when&gt;`, `&lt;otherwise&gt;`元素可以实现多条件分支,`&lt;trim&gt;`, `&lt;where&gt;`, `&lt;set&gt;`元素可以简化SQL...

    ibatis乱码解决方法(ibatis独立)

    - 如果在动态SQL中涉及到字符串拼接,务必确保字符串已经是正确的编码格式。例如,如果数据库使用GBK编码,那么拼接的字符串也应转为GBK。 5. **MyBatis拦截器处理**: - 可以自定义MyBatis拦截器,对输入参数...

    ibatis 资料大全

    3. **SQL动态化**:Ibatis支持动态SQL,通过条件标签(if、where、choose、when、otherwise等)可以根据业务需求动态构建SQL语句,避免了大量的字符串拼接。 4. **结果映射**:通过ResultMap,可以将查询结果自动...

    ibatis学习

    4. **动态SQL**:Ibatis支持在XML映射文件中编写动态SQL,可以根据条件动态地拼接SQL语句。 5. **参数映射和结果映射**:通过`&lt;parameterMap&gt;`和`&lt;resultMap&gt;`标签,可以定义复杂参数和结果对象的映射。 6. **缓存...

    ibatis的dynamicSQL中,关于prepend的使用

    在探讨ibatis中的动态SQL(Dynamic SQL)及`prepend`的使用时,我们首先需要对ibatis有一个基本的理解。ibatis是一种开源的数据访问层框架,它简化了Java应用程序与数据库之间的交互过程。通过使用XML配置文件来定义...

    ibatis实现原理解析

    2. 动态SQL:支持条件拼接,可以根据传入的参数动态生成SQL,提高了代码的可读性和灵活性。 3. 易于学习:Ibatis的学习曲线较平缓,开发者可以快速上手。 4. 高效性能:由于SQL语句直接由数据库执行,减少了中间层...

    ibatis 相关jar包

    - 动态SQL:在XML配置文件中可以编写动态SQL,根据条件动态拼接SQL语句。 3. **Java Web中的应用**: 在Java Web开发中,Ibatis 可以作为数据访问层(DAO)的实现,与Servlet、JSP、Spring等其他技术配合使用。...

Global site tag (gtag.js) - Google Analytics