|
MyBatis结果集映射在什么情况下使用?**
当定义的实体类的属性名和数据库的列名不一致时,需要建立属性名和列名的映射关系,也就是mybatis的结果集映射。
使用xml配置文件操作
<resultMap type="返回类型" id="xxxMap" autoMapping="true">
<id column="ID" property="ID"/>
<result column="name123" property="name"/>
<association property="属性值" column="相关联列名属性" select="接口类全路径.方法名"></association>
</resultMap>
<select id="接口中对应方法名" resultMap="xxxMap">
SELECT * FROM GRADE
</select>
</mapper>
使用注解完成一对多及多对一
public interface StudentMapper {
/**
*原理和上边一样,只不过是换种表式方式,更加简单,容易理解
*注意如果有多个联系,需要用
* @Results(
* {
* @Result(property="返回类型1",column="相关联的列名1",one=@one(select="接口1.方法名")),
* @Result(property="返回类型2",column="相关联的列名2",many=@Many(select="接口2.方法名"))
* }
* )
* 注意:one=@one 是表式一对一 many=@Many 是表示一对多
*/
@Results(
@Result(property="返回类型",column="关联的列名",many=@Many(select="接口.方法名"))
)
@Select("select * from student where sid=#{id}")
public Student queryStudentBySid(Integer id);
}
|