欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MyBatis映射一对一关联

程序员文章站 2022-05-10 13:51:05
...

          使用惯了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 这个元素即可完成类之间的一对一的映射。

相关标签: mybatis association