ibatis中的resultMap,resultClass,parameterClass ,resultType的说明和用法

  • A+
所属分类:java

一、resultMap,resultClass,parameterClass ,resultType的解释说明

1、resultMap属于直接映射,可以把结果集中的数据库字段与实体类中的属性一一对应,这样通过select语句得到的结果就会准确的对上号。

2、resultClass属于隐身映射,虽然你指定resultclass=“”,具体某一个类,但是select语句得到的结果是一条实力记录,但如果数据库字段与类的属性名字不一致,这个时候就会出现映射错误,有一种方式可以解决就是在写select语句时,给每个字段用as运算符取名字与属性一样:例如:select realname as name...其中realname是字段列名,name是属性字段名。

3、resultMap比resultClass性能要高。尽量使用resultMap

4、parameterClass 是参数类。指定了参数的完整类名(包括包路径)。可通过别名避免每次重复书写冗长的类名。

5、resultType 返回值类型,不需要映射直接使用

二、resultClass取值
1.resultClass="Integer"//基本类型,或者是java.lang.Integer

2.resultClass="com.sfbest.product.bean.ProductPicture"//Model对象

3.resultClass="string"//基本类型,java.lang.String

4.resultClass="long"//基本类型,java.lang.long

5.resultClass="java.util.HashMap"//map集合

//resultClass的用法如下:

<select id="getCount" parameterClass="OrderManualItem" resultClass="java.lang.Integer">
select count(*) from order_manual_item omi
where omi.is_delete='N'
</select>

 

resultMap 是结果映射,需结合resultMap节点对映射关系加以定义。

 

<!-- 处方药催单SQL LYD -->

<select id="selectUnTcPaidMobilesNew" parameterType="map" resultType="java.util.HashMap">
select m.mobile as mobile,o.order_id as orderid
from order_info o,member m 
where o.member_id=m.member_id and m.mobile is not null and o.payment_mode = 'KDFH'
and o.is_paid != 'Y'
and o.is_tc = 'Y'
and o.order_state != (select code_id from sys_code
where code_type_no = 'order_state'
and code_no = 'cancel')
and o.is_delete = 'N'
and round(to_number(sysdate -to_date(o.commit_time, 'YYYY-MM-DD hh24:mi:ss')) * 24) &gt;= 12
and round(to_number(sysdate -to_date(o.commit_time, 'YYYY-MM-DD hh24:mi:ss')) * 24) &lt;36
</select>

//注意:

mybatis中,patamaterType 省略不写的时候,mybatis可以自动识别,

patamaterType="int",

patamaterType="String",//或者是patamaterType="string",

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: