`
qieyi28
  • 浏览: 159432 次
  • 性别: 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动态sql拼接

    iBatis 动态 SQL 拼接 iBatis 框架中的动态 SQL 拼接是一种强大的功能,它允许开发者根据不同的条件生成不同的 SQL 语句,从而提高程序的灵活性和可维护性。在本文中,我们将深入分析 iBatis 框架中动态 SQL 的实现...

    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动态注入

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

    ibatis中iterate的例子

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

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

    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 资料大全

    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实现原理解析

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

    ibatis 相关jar包

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

    ibatis+struts2

    5. **动态SQL**:iBatis支持条件拼接,可以根据不同参数动态生成SQL,提高了SQL的复用性。 **Struts2知识点:** 1. **Action类**:实现了Struts2的Action接口,处理用户的请求,执行业务逻辑。 2. **配置文件**:`...

Global site tag (gtag.js) - Google Analytics