mybatis映射

mybatis是基于结果集映射的,刚开始学习时不明白为什么映射文件中没有配置对应的表,原因是mybatis要手写SQL.

而sql执行后的结果封装到resultMap。


<resultMap type="web.vo.OutProductVO" id="outProductRM">
  <result property="customName" column="CUSTOM_NAME"/>
  <result property="contractNo" column="CONTRACT_NO"/>
  <result property="productNo" column="PRODUCT_NO"/>
  <result property="cnumber" column="CNUMBER"/>
  <result property="factoryName" column="FACTORY_NAME"/>
  <result property="deliveryPeriod" column="DELIVERY_PERIOD"/>
  <result property="shipTime" column="SHIP_TIME"/>
  <result property="tradeTerms" column="TRADE_TERMS"/>
</resultMap>

<!-- 按船期查询某个月的合同统计 -->
<select id="find" parameterType="string" resultMap="outProductRM">
select
c.custom_name,c.contract_no,to_char(c.delivery_period,'yyyy-MM-dd') as delivery_period,to_char(c.ship_time,'yyyy-MM-dd') as ship_time,c.trade_terms,
cp.product_no,concat(cp.cnumber,cp.packing_unit) as cnumber,cp.factory_name
from
(select contract_id,custom_name,contract_no,delivery_period,ship_time,trade_terms from contract_c) c
left join
(select contract_id,product_no,cnumber,packing_unit,factory_name from contract_product_c) cp
on c.contract_id=cp.contract_id

where to_char(c.ship_time,'yyyy-MM') = #{inputDate}
</select>
</mapper>

它是比较灵活的,需要查什么字段都可以。

但是相对于hibernate基于对象的映射 就会查出所有的字段在内存中。

posted on 2017-04-01 05:59  寡人为你打下的江山  阅读(141)  评论(0编辑  收藏  举报

导航