mybatisSQL语句映射文件解析
来自:http://limingnihao.iteye.com/blog/781878
mybatisSQL语句映射,跟Hibernate的实体关系映射的XML很相似,用在这里其实就是实体映射和相关的SQL语句的映射。
我关心的内容是:
1、实体XML映射文件的标签
--------SQL 映射XML 文件一些初级的元素:
1. cache 配置给定模式的缓存
2. cache-ref 从别的模式中引用一个缓存
3. resultMap 这是最复杂而却强大的一个元素了,它描述如何从结果集中加载对象
4. sql 一个可以被其他语句复用的SQL 块
5. insert 映射INSERT 语句
6. update 映射UPDATE 语句
7. delete 映射DELEETE 语句
8. select - 映射SELECT语句
2、ResultMap的标签和属性
---resultMap属性:type为java实体类;id为此resultMap的标识。
---resultMap可以设置的映射:
1. constructor 用来将结果反射给一个实例化好的类的构造器
a) idArg ID 参数;将结果集标记为ID,以方便全局调用
b) arg 反射到构造器的通常结果
2. id ID 结果,将结果集标记为ID,以方便全局调用
3. result 反射到JavaBean 属性的普通结果
4. association 复杂类型的结合;多个结果合成的类型
a) nested result mappings 几resultMap 自身嵌套关联,也可以引用到一个其它上
5. collection 复杂类型集合a collection of complex types
6. nested result mappings resultMap 的集合,也可以引用到一个其它上
7. discriminator 使用一个结果值以决定使用哪个resultMap
a) case 基本一些值的结果映射的case 情形
i. nested result mappings 一个case 情形本身就是一个结果映射,因此也可以包括一些相同的元素,也可以引用一个外部resultMap。
3、SQL映射语句的属性
id -- 映射标识
parameterType -- 参数类型
resultMap -- resultMap的引用
4、在SQL隐射中引用ResultMap
<resultMap type="ClassEntity" id="classResultMap">
<id property="classID" column="CLASS_ID" />
....
</resultMap>
<select id="getTeacher" parameterType="String" resultMap="teacherResultMap">
SELECT *
FROM TEACHER_TBL TT
WHERE TT.TEACHER_ID = #{teacherID}
</select>