动态拼接实例,这样不用写存储过程也能实现灵活拼接,注意这里用了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>
分享到:
相关推荐
在本篇文章中,我们将深入探讨如何使用 Java 编程语言结合 iBatis 框架进行 SQL 字符串的动态拼接。通过分析提供的代码片段,我们可以了解到在实际开发过程中,这种动态 SQL 的构建方式非常常见,尤其是在处理复杂的...
iBatis 中使用安全的拼接语句、动态查询、大于、小于、等于 iBatis 是一个流行的持久层框架,提供了许多强大的功能来帮助开发者构建高效、安全的数据库交互应用程序。本文将详细介绍 iBatis 中使用安全的拼接语句、...
本篇将详细介绍如何利用日志来调试Ibatis中的复杂SQL动态拼接。 首先,了解Ibatis的日志系统是关键。Ibatis默认集成了几种常见的日志实现,如Log4j、Logback和Java内置的日志框架。在项目中,我们需要配置相应的...
标题中的“ibatis 连接字符串 SqlMapConfig.xml”指的是使用iBATIS(一个轻量级的Java持久层框架)时,配置数据库连接的关键文件——SqlMapConfig.xml。这个文件是iBATIS的核心配置文件,它包含了数据源、事务管理器...
这些动态元素使得SQL语句可以根据传入的参数值动态地调整,避免了大量IF-ELSE语句或者字符串拼接,提高了代码的可读性和可维护性。 首先,我们来看一个简单的例子。以下是一个查询用户列表的SQL映射: ```xml ...
在iBatis中,`<iterate>`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、List或Map等,进行循环遍历并生成动态SQL语句。下面我们将详细探讨`<iterate>`标签的用法及其示例。 `<iterate>`标签的主要...
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.net拼接字符串不能直接拷贝然后在dbms里执行",这实际上涉及到iBatis动态SQL的概念。iBatis并不鼓励直接复制SQL字符串到数据库管理系统(DBMS)进行执行,因为这样会丧失iBatis的一些...
### ibatis的动态查询知识点详解 #### 一、模糊查询 **知识点1:** 在进行模糊查询时,ibatis支持两种不同的语法标记:`#` 和 `$`。 1. **使用 `$value$` 进行模糊查询:** - 在进行模糊查询时,使用 `$value$` ...
1. 动态SQL:Ibatis支持在XML或注解中编写动态SQL,根据条件灵活拼接SQL。 2. 缓存:提供本地缓存和二级缓存,提高数据读取速度。 3. 参数映射:通过`@Param`注解或`<param>`标签实现参数绑定。 4. 结果映射:通过`@...
Ibatis支持动态SQL,允许在XML配置文件中根据条件拼接SQL语句,极大地提高了SQL的灵活性和可维护性。 #### 3.2 参数映射 Ibatis能自动将Java对象的属性值映射到SQL语句的参数,反之也能将查询结果映射到Java对象。...
2. **动态SQL**:Ibatis允许在XML映射文件中直接编写条件语句,如`<if>`、`<choose>`、`<when>`、`<otherwise>`等标签,实现SQL的动态拼接,增加了灵活性。 3. **Mapper接口**:Ibatis提供Mapper接口方式,可以将...
- 如果在动态SQL中涉及到字符串拼接,务必确保字符串已经是正确的编码格式。例如,如果数据库使用GBK编码,那么拼接的字符串也应转为GBK。 5. **MyBatis拦截器处理**: - 可以自定义MyBatis拦截器,对输入参数...
ibatis还支持动态SQL语句,可以根据业务逻辑动态生成SQL语句。例如,使用`<if>`元素可以实现条件判断,`<choose>`, `<when>`, `<otherwise>`元素可以实现多条件分支,`<trim>`, `<where>`, `<set>`元素可以简化SQL...
3. **SQL动态化**:Ibatis支持动态SQL,通过条件标签(if、where、choose、when、otherwise等)可以根据业务需求动态构建SQL语句,避免了大量的字符串拼接。 4. **结果映射**:通过ResultMap,可以将查询结果自动...
4. **动态SQL**:Ibatis支持在XML映射文件中编写动态SQL,可以根据条件动态地拼接SQL语句。 5. **参数映射和结果映射**:通过`<parameterMap>`和`<resultMap>`标签,可以定义复杂参数和结果对象的映射。 6. **缓存...
2. 动态SQL:支持条件拼接,可以根据传入的参数动态生成SQL,提高了代码的可读性和灵活性。 3. 易于学习:Ibatis的学习曲线较平缓,开发者可以快速上手。 4. 高效性能:由于SQL语句直接由数据库执行,减少了中间层...
- 动态SQL:在XML配置文件中可以编写动态SQL,根据条件动态拼接SQL语句。 3. **Java Web中的应用**: 在Java Web开发中,Ibatis 可以作为数据访问层(DAO)的实现,与Servlet、JSP、Spring等其他技术配合使用。...
5. **动态SQL**:iBatis支持条件拼接,可以根据不同参数动态生成SQL,提高了SQL的复用性。 **Struts2知识点:** 1. **Action类**:实现了Struts2的Action接口,处理用户的请求,执行业务逻辑。 2. **配置文件**:`...