Ibatis3 mapper配置文件实例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//
EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

<mapper>

 <select id="" parameterMap="" parameterType="" resultMap=""
  resultType="" useCache="true" flushCache="true" timeout="" fetchSize=""
  statementType="STATEMENT" resultSetType="FORWARD_ONLY">
  <!--
   statementType可以设置为STATEMENT,PREPARED,CALLABLE,
   默认为PREPARED,像在调用存储过程时就可以使用CALLABLE类型
   resultSetType结果集类型,主要是说游标,具有方向性,可以去
   FORWARD_ONLY、SCROLL_SENSITIVE、SCROLL_INSENSITIVE 默认根据数据库驱动而定
  -->

 </select>

 <insert id="" useGeneratedKeys="true" keyProperty=""></insert>
 <!--
  useGenerateKeys是否使用数据库自动生成的键(如自增列) 默认 false
  keyProperty将数据库自动生成的键值赋值给哪一个字段值
 -->

 <!--ibatis还对不支持自动生成主键值的数据库提供了主键值生成方案,如下是一个随机数主键值:-->
 <insert id="insertAuthor" parameterType="domain.blog.Author">
  <selectKey keyProperty="id" resultType="int" order="BEFORE">
   select
   CAST(RANDOM()*1000000 as INTEGER) a from SYSIBM.SYSDUMMY1
  </selectKey>
  <!--
   order可以设置为BEFORE、AFTER。如果是BEFORE,会先select键值,赋值键值然后执行insert语句。
   如果是AFTER,那么会先执行insert语句之后再select。默认AFTER
  -->
  insert into Author
  (id, username, password, email,bio,
  favourite_section)
  values
  (#{id}, #{username}, #{password}, #{email},
  #{bio},
  #{favouriteSection,jdbcType=VARCHAR}
  <!--
   定义特殊传参类型 #{property,javaType=int,jdbcType=NUMERIC}
  -->
  )
 </insert>

 <!--sql定义重用的sql代码-->
 <sql id="userColumns">
  id,username,password
 </sql>
 <select id="selectUsers" parameterType="int" resultType="hashmap">
  select
  <include refid="userColumns" />
  from some_table
  where id = #{id}
 </select>

 <resultMap type="" id="">

  <!--constructor属性可以配置通过类构造函数注入属性的一些参数-->
  <constructor>
   <idArg column="" javaType="" jdbcType="" typeHandler="" />
   <arg column="" javaType="" jdbcType="" typeHandler="" />
  </constructor>

  <!--
   id,result均将单个列的值映射到POJO中的单个简单类型属性(如int,double,Date等等)
   id映射主键,result映射普通属性
  -->
  <id column="" javaType="" jdbcType="" property="" typeHandler="" />
  <result column="" javaType="" jdbcType="" property=""
   typeHandler="" />

  <!--association标签定义了实体之间的关联  -->
  <association property="">
   <id />
   <result />
   <association property=""></association>
   <collection property=""></collection>
   <discriminator javaType="">
    <case value=""></case>
   </discriminator>
  </association>

  <!--collection类似association对应POJO中的集合属性 ,如List Map -->
  <collection property="" ofType=""></collection>

  <!--
   有时候我们从数据库中得到的值不仅仅对应一种POJO,可能根据参数不同对应不懂的POJO,
   如车辆的属性根据卡车、汽车而不同,那么可以使用以下配置
  -->
  <discriminator javaType="int" column="vehicle_type">
   <case value="1" resultMap="carResult" />
   <case value="2" resultMap="truckResult" />
   <case value="3" resultMap="vanResult" />
   <case value="4" resultMap="suvResult" />
  </discriminator>
 </resultMap>

 <!--
  cache:配置命名空间内的缓存机制 cache-ref:引用两一个命名空间的缓存配置
  缓存过期算法:
   LRU 最近最少使用
   FIFO 先进先出
   SOFT 只有当目前内存不足的情况下,JVM 在垃圾回收时才会收回其包含的引用
   WEAK 只要JVM 启动了垃圾回收机制,那么WeakReference 所对应的对象就将被JVM 回收
 -->
 <cache eviction="" flushInterval="" readOnly="" size="" type=""></cache>
 <cache-ref namespace=""/>

</mapper>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值