Liny_@NotePad

沉迷ACG中

iBATIS2配置sqlMap statement时的返回类型。。

笔记下。。数据库中表字段与类属性不匹配时就需要自定义resultMap。。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE sqlMap     
  3.     PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"     
  4.     "http://ibatis.apache.org/dtd/sql-map-2.dtd">
  5.  
  6. <sqlMap>
  7.  
  8.         <!-- 设定类型别名 -->
  9.         <typeAlias alias="Student" type="org.yoyo.model.Student" />
  10.  
  11.         <!-- 映射集合 -->
  12.         <resultMap id="Student" class="Student">
  13.                 <result property="id" column="sid" />
  14.                 <result property="name" column="name" />
  15.                 <result property="age" column="age" />
  16.                 <result property="major" column="major" />
  17.         </resultMap>
  18.  
  19.         <!-- 查询语句 -->
  20.         <select id="queryAllStudents" resultMap="Student">
  21.                 SELECT * FROM Student
  22.         </select>
  23.  
  24. </sqlMap>

最后这个select语句,如果定义的是resultClass="Student",则会匹配org.yoyo.model.Student(typeAlias里定义的别名真实类型)。
此时sid找不到匹配的属性,就无法获取,因此用resultMap="Student",此时sid会匹配到属性id去。

p.s. iBATIS2的配置真是巨多啊啊啊囧好恐怖……