MyBatis映射一对一关联
使用惯了Hibernate, model类之间都会书写关联关系。现在使用 Mybatis,在Mybatis中如何映射类之间的关联关系,今天举例说一下一对一的关联关系在Mybatis中如何映射。例: Blog与Author是一对一的关联关系
model类的代码如下:
public class Blog implements Serializable {
private static final long serialVersionUID = 1L;
private Integer rowId;
private Integer authorId;//作者ID
private String title;
private String content;
private Author author;//关联作者类
//省略Setter,Getter方法
}
public class Author implements Serializable {
private static final long serialVersionUID = 1L;
private Integer rowId;
private String name;
private Integer age;
private String email;
//省略Setter,Getter方法
}
Mybatis的映射文件如下:
<resultMap type="Blog" id="blogResult">
<id column="rowId" property="blog_id" />
<result column="authorId" property="authorId"/>
<result column="title" property="blog_title"/>
<result column="content" property="blog_content"/>
<!-- 映射关联的对象 -->
<association property="author" javaType="Author">
<id column="rowId" property="author_id"/>
<result column="name" property="author_name"/>
<result column="age" property="author_age"/>
<result column="email" property="author_email"/>
</association>
</resultMap>
<select id="selectBlog" parameterType="int" resultMap="blogResult">
select
B.rowId as blog_id,
B.title as blog_title,
B.content as blog_content,
B.author_id as blog_author_id,
A.rowId as author_id,
A.name as author_name,
A.age as author_age,
A.email as author_email
From Blog B left join Author A on A.author_id = B.blog_id
where B.author_id = #{id}
</select>
使用association 这个元素即可完成类之间的一对一的映射。
页:
[1]