`
zhangrong108
  • 浏览: 206646 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

高级Ibatis查询(动态传入多个值、在不同时间断查询)

阅读更多
<!-- 动态数据查询  id="自定义名称" resultClass="返回结果类型" resultSetType="设置结果类型"-->
<select id="BREAKSLISTSQL" resultClass="HashMap" resultSetType="SCROLL_INSENSITIVE">
        SELECT  D.*,G.NAME AS ANALYSEGROUPID ,V.RegistrationNO AS VehicleID
	FROM ANA_DrivingBreak D
	LEFT JOIN ANA_AnalyseGroups G ON D.AnalyseGroupID=G.ID 
	LEFT JOIN dbo.MSC_Vehicle V ON D.VehicleID=V.ID
       <dynamic prepend="WHERE">      <!--动态添加条件-->
	<isNotNull property="VEHICLEID">       <!--判断属性是否为空-->
	<isNotEqual property="VEHICLEIDSIZE" compareValue="0" prepend="AND">
		 V.RegistrationNO IN <!--property="listData"  循环执行传进来的数据  in(值)-->
	<iterate property="VEHICLEID" open="(" close=")" conjunction=",">   
	   	'$VEHICLEID[]$'         <!--使用list保存数据,这里使用'$VEHICLEID[]$'  把值取出来-->
	</iterate>
	 </isNotEqual>
	<isEqual property="VEHICLEIDSIZE" compareValue="0" prepend="AND">
		 1 = 0            <!--property="listSize"   条件成立继续执行-->
	</isEqual>
	</isNotNull>
				
	<!-- 查询本月数据 -->
	<isEqual property="TIMETYPE" compareValue="1" prepend="AND">
		 MONTH(GenerateTime) = MONTH(GETDATE()) AND YEAR(GenerateTime) = YEAR(GETDATE())
	</isEqual> 
	<!-- 查询上月数据 -->
	<isEqual property="TIMETYPE" compareValue="2" prepend="AND">
		MONTH(GenerateTime) = MONTH(GETDATE()) -1 AND YEAR(GenerateTime) = YEAR(GETDATE())
	</isEqual> 
	<!-- 查询今天数据 -->
	<isEqual property="TIMETYPE" compareValue="3" prepend="AND">
		DAY(GenerateTime) = DAY(GETDATE()) AND MONTH(GenerateTime) = MONTH(GETDATE()) AND YEAR(GenerateTime) = YEAR(GETDATE())
	</isEqual> 
	<!-- 查询昨天数据 -->
	<isEqual property="TIMETYPE" compareValue="4" prepend="AND">
		DAY(GenerateTime) = DAY(GETDATE())-1 AND MONTH(GenerateTime) = MONTH(GETDATE()) AND YEAR(GenerateTime) = YEAR(GETDATE())
	</isEqual> 
	<!-- 查询自定义数据-->
	<isGreaterEqual property="TIMETYPE" compareValue="5" prepend="AND">
		 GenerateTime BETWEEN '$BEGINTIME$' AND '$ENDTIME$'
	</isGreaterEqual>
	</dynamic>
	ORDER BY D.ID DESC
</select>

 

1
3
分享到:
评论
2 楼 di1984HIT 2015-09-08  
学习了,真的学习了~
1 楼 小嘴看世界 2010-08-24  
哪高级了????????

相关推荐

    ibatis的动态查询

    **知识点2:** 多条件组合查询是指在一个查询语句中同时使用多个条件,以满足更复杂的查询需求。 1. **使用 `&lt;dynamic&gt;` 标签进行多条件组合查询:** - `&lt;dynamic&gt;` 标签允许根据传入的参数动态生成 SQL 语句。 -...

    iBatis执行非查询语句(CRUD,函数和过程)

    iBatis的一大特性是动态SQL,它允许在XML映射文件中编写条件语句,根据传入的参数动态构建SQL。这极大地提高了SQL的灵活性,减少了重复代码。 五、事务管理 iBatis支持自动和手动的事务管理。在Java代码中,可以...

    Ibatis

    Ibatis 的一大亮点是支持动态 SQL,开发者可以在 SQL 映射文件中使用条件判断、循环等结构,使得 SQL 语句能够根据传入参数的不同而变化。 **4. MyBatis vs Ibatis** 尽管 Ibatis 在后期演进成了 MyBatis,两者在...

    ibatis使用指南

    Ibatis支持动态SQL,可以在XML映射文件中使用`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;`等标签,根据条件动态生成SQL语句。 7. **参数处理** 使用`@Param`注解指定参数名,配合`#{}`占位符,可以实现复杂的...

    Ibatis常用sql语句

    Ibatis是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。Ibatis可以让你直接编写原生态SQL,可以严格控制SQL执行性能,灵活度极高,尤其适合对SQL有特殊需求的项目。 ### SQL语句详解 #### 1. 删除...

    ibatis的CRUD+存储过程+动态查询

    总结,Ibatis通过SQL映射文件提供了强大的数据操作能力,包括基本的CRUD操作,调用存储过程以利用数据库的高级功能,以及使用动态SQL进行灵活的查询。掌握这些知识点,能让你在Java后端开发中更加游刃有余。学习和...

    ibatis入门实例(全代码)

    **Ibatis 入门实例详解** Ibatis 是一个优秀的轻量级 Java ORM(对象关系映射)框架...同时,这个实例也鼓励学习者进一步探索 Ibatis 的高级特性,如事务控制、数据源配置、性能优化等,以提升其在实际开发中的技能。

    ibatis.doc

    在iBATIS配置方面,SqlMapClient是iBATIS的核心组件,它负责管理SqlMap实例,这些实例对应于数据库中的不同表或者存储过程。XmlSqlMapClientBuilder用于解析XML配置文件,构建SqlMapClient实例。SqlMapClient支持...

    ibatis资料

    在"Ibatis动态查询例子(#和$以及iterate等的用法) - Java - JavaEye论坛.mht"这个文件中,可能包含了JavaEye社区成员关于Ibatis动态查询的深入讨论和示例。这些讨论可能涵盖了实际开发中的问题和解决方案,比如如何...

    ibatis3.0中in的用法

    在进行数据库查询时,经常会遇到需要根据多个值进行查询的情况,这时`IN`语句就显得尤为重要。`IN`语句可以用于判断某个字段的值是否在一个指定的列表之中,非常适用于批量数据的处理。而在ibatis3.0框架中,如何...

    ibatis实战之一对多关联(源代码)

    在关系型数据库中,一对多关联是非常常见的一种数据关系,例如一个用户可以拥有多个订单,一个部门可以包含多个员工等。在iBatis中,我们可以通过配置XML映射文件来实现这种关联。 1. **一对多关联映射原理** 一对...

    ibatis sql 语句的编写

    通过`&lt;choose&gt;`/`&lt;when&gt;`/`&lt;otherwise&gt;`结构,可以根据多个条件生成不同的查询语句。 #### 五、总结 通过本文的学习,我们了解了ibatis的基本使用方法,包括如何编写各种类型的SQL语句,并掌握了动态SQL的相关技巧...

    ibatis in action 中文

    iBatis允许开发者配置多个数据源,这在处理分布式数据库或读写分离的场景中非常有用。通过配置数据源,iBatis可以在运行时选择合适的数据库进行操作。 8. 性能优化: iBatis的性能优化主要体现在减少不必要的对象...

    ibatis开发文档

    iBATIS是一个轻量级的Java持久层框架,它提供了SQL映射机制,将数据库操作与业务逻辑解耦,使得开发者可以编写动态的SQL来控制数据库。本开发文档主要涵盖iBATIS的配置、使用方法以及相关的教程。 一、iBATIS简介 ...

    iBatis CURD Demo

    iBatis支持多种查询方式,包括单个结果、多个结果和动态SQL。例如,你可以通过`selectUserById`方法来获取特定ID的用户信息,该方法会在XML映射文件中有一个SELECT语句,根据传入的ID参数进行查询。如果需要查询多条...

    ibatis实现增删改查功能demo

    在Ibatis中,如果一个方法需要接收多个参数,可以使用@Param注解为每个参数命名,然后在SQL语句中通过占位符引用它们。例如,`@Select("SELECT * FROM table WHERE id = #{id} AND name = #{name}")`。 4. **...

    ibatis开发指南.pdf.zip

    通过 `&lt;select&gt;`、`&lt;insert&gt;`、`&lt;update&gt;` 和 `&lt;delete&gt;` 标签,开发者可以编写复杂的查询,并利用参数绑定来动态传入值。 3. **动态 SQL**:iBatis 提供了一种强大的动态 SQL 功能,允许在映射文件中使用条件语句...

    ibatis开发

    ibatis允许开发者编写动态SQL语句,通过传入的参数动态生成不同的SQL查询,这对于复杂的查询场景非常有用。 - **事务管理** ibatis支持基于JDBC和JTA的事务管理机制。基于JDBC的事务管理适用于简单的应用程序;而...

    ibatis_开发指南

    - **一对多关联**:使用嵌套查询或嵌套结果的方式,实现一个Java对象关联多个子对象,如一个用户关联多个订单。 - **一对一关联**:通过外键或主键关联,实现两个Java对象之间的关联,如一个用户关联一个地址。 - **...

Global site tag (gtag.js) - Google Analytics