`
mmddonkey
  • 浏览: 31705 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
文章分类
社区版块
存档分类
最新评论

ibatis 指定返回Map中的字段类型

阅读更多

<resultMap class="java.util.HashMap" id="statistic_result">
		<result property="TOTAL" javaType="java.lang.Integer"/>
		<result property="SUCCESS" javaType="java.lang.Integer"/>
		<result property="TOTAL_MONEY" javaType="java.lang.Double"/>
		<result property="TOTAL_SUCCESS_MONEY" javaType="java.lang.Double"/>
		<result property="TOTAL_COMMISSION" javaType="java.lang.Double"/>
	</resultMap>
	
	
	<select id="statistic"  parameterClass="com.hanpeng.base.phone.model.TPhoneSale" resultMap="statistic_result" >
		<![CDATA[
		select
        count(*) 									as TOTAL,
        nvl(sum(decode(state,'0',1,0)),0) 			as SUCCESS,
        nvl(sum(money),0) 							as TOTAL_MONEY,
        nvl(sum(decode(state,'0',money,0)),0) 		as TOTAL_SUCCESS_MONEY,
        nvl(sum(decode(state,'0',commission,0)),0) 	as TOTAL_COMMISSION
		FROM T_PHONE_SALE ]]>
		<dynamic prepend="WHERE">
			<isNotEmpty prepend=" AND " property="saleNum">
				SALE_NUM =  #saleNum# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="bussinessId">
				BUSSINESS_ID =  #bussinessId# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="phone">
				PHONE =  #phone# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="areaCode">
				AREA_CODE =  #areaCode# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="phoneArea">
				PHONE_AREA =  #phoneArea# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="typeCode">
				TYPE_CODE =  #typeCode# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="money">
				MONEY =  #money# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="price">
				PRICE =  #price# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="collect">
				COLLECT =  #collect# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="commission">
				COMMISSION =  #commission# 			</isNotEmpty>
			
			<isNotEmpty prepend=" AND " property="beginTime">	
			<![CDATA[
			CREATE_DATE >  to_date(#beginTime#,'yyyy-mm-dd hh24:mi:ss') 	]]></isNotEmpty>
			<isNotEmpty prepend=" AND " property="endTime">
			<![CDATA[
			CREATE_DATE <  to_date(#endTime#,'yyyy-mm-dd hh24:mi:ss') 		]]></isNotEmpty>

			<isNotEmpty prepend=" AND " property="finishDate">
				FINISH_DATE = #finishDate# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="employeeId">
				EMPLOYEE_ID =  #employeeId# 			</isNotEmpty>
				
			<isNotEmpty prepend=" AND " property="states">	
			<iterate property="states" open="(" close=")" conjunction="OR"> 
				<isNotEqual compareValue="1" property="states[]">
					STATE=#states[]# 
				</isNotEqual>	
				<isEqual compareValue="1" property="states[]">
					STATE not in('0','-1')
				</isEqual>
			</iterate> 	
			</isNotEmpty>
			
			<isNotEmpty prepend=" AND " property="oneSide">
				ONE_SIDE =  #oneSide# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="oneEmployee">
				ONE_EMPLOYEE =  #oneEmployee# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="oneRemark">
				ONE_REMARK =  #oneRemark# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="reverse">
				REVERSE =  #reverse# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="reverseEmployee">
				REVERSE_EMPLOYEE =  #reverseEmployee# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="reverseRemark">
				REVERSE_REMARK =  #reverseRemark# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="supplyFailed">
				SUPPLY_FAILED =  #supplyFailed# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="beforeAccount">
				BEFORE_ACCOUNT =  #beforeAccount# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="afterAccount">
				AFTER_ACCOUNT =  #afterAccount# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="beforeCommission">
				BEFORE_COMMISSION =  #beforeCommission# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="afterCommission">
				AFTER_COMMISSION =  #afterCommission# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="cost">
				COST =  #cost# 			</isNotEmpty>
				
			<isNotEmpty prepend=" AND " property="operators">
				OPERATORS_CODE in
				<iterate property="operators" open="(" close=")" conjunction=",">
				 #operators[]#
				</iterate>	
			</isNotEmpty>
				
			<isNotEmpty prepend=" AND " property="clientName">
				CLIENT_NAME =  #clientName# 			</isNotEmpty>
			<isNotEmpty prepend=" AND " property="clientMoney">
				CLIENT_MONEY =  #clientMoney# 			</isNotEmpty>
		</dynamic>
	</select>
 result 标签中nullValue属性貌似是默认值(未测试)
分享到:
评论

相关推荐

    ibatis中iterate的例子

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

    Ibatis调用Oracle存储过程返回自定义类型

    在此映射文件中,我们定义了存储过程的调用方式,并指定了参数类型以及返回结果的映射规则。 ##### Java代码示例 ```java public class WealthDealDetailService { private WealthDealDetailMapper mapper; ...

    ibatis 用HashMap解决resultClass映射

    在 ibatis 中,可以使用 `&lt;select&gt;` 元素来定义 SQL 查询,并通过 `resultClass` 属性指定结果集的类型。为了使查询结果能够适应变化的列名和列数,我们需要设置 `remapResults` 属性为 `true`。 ```xml &lt;!-- ...

    ibatis实现结果集map封装(Demo下载)

    在iBatis中,结果集的Map封装是通过`&lt;resultMap&gt;`标签来定义的,它可以指定列名或别名作为键,Java字段名作为值。例如: ```xml ``` 在这个例子中,`UserMap`结果集映射将数据库中的`user_id`、`user_name...

    ibatis3.0中in的用法

    - `resultType="domain.blog.Post"`指定了返回结果的数据类型。 - `&lt;foreach&gt;`标签用来遍历传入的`list`集合,`list`应该是一个包含多个ID值的列表。 - `#{item}`表示每次循环时取出的ID值。 #### 六、实际应用案例...

    ibatis的错误总结

    在ibatis中,`parameterClass`属性用于指定传递给SQL语句的参数类型。例如,在给定的部分内容中: ```xml select rf.role_id as roleId from st_rolefunction rf where rf.fnc_id=30 rf.role_id=#roleId# ...

    ibatis入门实例(全代码)

    这里的 `namespace` 代表一个命名空间,`select` 标签定义了一个查询操作,`id` 属性是查询的唯一标识,`parameterClass` 指定输入参数的类型,`resultClass` 定义了返回结果的对象类型。 在 Java 代码中,我们需要...

    ibatis plugin用户指南

    与Eclipse中的Abator不同,iBatis Plugin不仅限于代码生成,而是全方位地优化了iBatis的开发体验。 **配置iBatis Plugin** 首先,你需要从IntelliJ IDEA的插件市场下载iBatis Plugin。安装完成后,配置数据源...

    iBatis Web用法实例

    iBatis 是一款著名的开源持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,提供了灵活的数据库交互方式,避免了过多的JDBC代码和手动设置参数以及获取结果集。在这个"iBatis Web用法实例"中,我们将深入...

    Ibatis资料ibatai sql map iBATIS使用$和#的一些理解

    如果字段名中包含`#`,记得在XML配置中正确地转义它,以避免解析错误。 总结来说,iBATIS的参数处理机制提供了灵活性和安全性,`$`和`#`的使用需要根据具体需求来选择。理解它们的工作原理对于编写高效、安全的SQL...

    iBATIS实例小程序

    - `mbs_txn_dtll`表中的`ext_error_cd`字段与`mbs_param`表中的`param_nm`字段相匹配。 - 条件: - 账户号: `l.orig_acct_no=#acct#` - 交易类型: `l.type_cd='1000'` - 交易代码: `l.txn_code='D0012'` - 组织...

    ibatis 中文api

    Ibatis支持多种参数映射方式,如简单类型、Map、POJO对象等,通过`#{}`占位符进行绑定。 6. **结果映射**:Ibatis可以自动将查询结果转换为Java对象。在映射文件中定义`resultMap`,指定字段与Java属性的对应关系,...

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

    在Mapper XML文件中编写UPDATE语句,指定需要修改的字段和条件。在Java接口中定义相应的方法,传入需要更新的对象或参数。 4. 删除&gt;Delete):删除操作对应DELETE语句。XML文件中定义删除条件,Java接口中声明方法。...

    ibatis技术总结

    - `queryForMap(String id, Object parameterObject, String keyProp, String valueProp)`:执行指定ID的SQL语句,并将结果集中指定字段作为`Map`的键,同时指定另一个字段作为`Map`的值。 以上接口方法为iBatis...

    ibatis2012中文 学习书籍

    - **3.2 选择性查询**: iBatis允许用户指定需要查询的字段,避免不必要的数据传输。 - **3.2.1 Hibernate**: 默认查询所有字段,即使某些字段很大且不需要。 - **3.2.2 Hibernate lazy load限制**: 在需要完整对象...

    ibatis_test测试

    基于描述,"ibatis_test测试"可能涉及到创建数据库表和库,并根据Java类的set-get方法来建立字段映射。在测试过程中,通常会执行以下步骤: - 创建数据库表结构,根据Java实体类的属性来设计表字段。 - 编写...

    iBATIS2.3及其说明文档

    你可以指定字段与Java对象属性的对应关系,包括基本类型、复杂类型的映射。 iBATIS 3(MyBatis)是一个升级版,它在iBATIS的基础上进行了改进,引入了更多的新特性,如注解支持、更强的类型安全、更灵活的SQL构造等...

    ibatis的一个简单demo用户登录

    在登录方法中,我们通过`SqlSession`打开一个事务,调用`selectOne`方法执行查询,如果找到匹配的用户则返回用户对象,否则抛出异常或返回错误信息。 此外,为了确保安全性,用户输入的密码通常需要在客户端进行...

    iBatis简明教程及快速入门

    2. **创建数据库表**:本教程中使用了一个简单的`Account`表,包含`username`和`password`两个字段。 3. **配置文件详解**: - **sql-map-config.xml**:这是iBatis的主要配置文件,包含了数据源、事务管理等设置...

    ibatis开发包(common+sqlmap+dao)

    例如,`org.apache.ibatis.type.TypeHandler`接口定义了如何在Java对象和数据库字段之间进行转换的逻辑,这对于处理复杂的数据类型尤其有用。 2. **ibatis-sqlmap-2.jar**: 这是Ibatis的核心组件,实现了SQL映射...

Global site tag (gtag.js) - Google Analytics