首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

MyBatis投射一对一关联

2014-01-03 
MyBatis映射一对一关联? ? ? ? ? 使用惯了Hibernate, model类之间都会书写关联关系。现在使用 ?Mybatis,在M

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;//作者IDprivate 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 这个元素即可完成类之间的一对一的映射。

热点排行