MyBatis 關系映射XML配置


關系映射


在我看來這些實體類就沒啥太大關聯關系,不就是一個sql語句解決的問題,直接多表查詢就完事,程序將它設置關聯就好

xml里面配置也是配置了sql語句,下面給出幾個關系的小毛驢(xml)

一對多


 

<mapper namespace="com.entity.UserMapper">
<!--一對多關聯查詢  -->
<resultMap id="user_info" type="com.entity.User">
  <result property="id" column="id" />
  <result property="username" column="username"/>
  <result property="password" column="password"/>
  <collection property="userInfos" ofType="com.entity.UserInfo" column="uid">
          <result property="id" column="id"/>
          <result property="address" column="address"/>
  </collection>
</resultMap>
  <select id="getUser"  resultMap="user_info">
    select * from user u,userinfo i where u.id=i.uid and u.id=#{id}
  </select>
</mapper>

實體類,給出字段,自己get和set

/**
 * 
 * @author 堅持到你GL
 *
 */
public class User {
    private int id;
    private String username;
    private String password;
    private List<UserInfo> userInfos;
    
/**
 * 
 * @author 堅持到你GL
 *
 */
public class UserInfo {
    private int id;
    private String address;
    private int uid;

多對多


 

<mapper namespace="com.entity.UserMapper">
<!--多對多  -->
<resultMap id="ug" type="com.entity.User">
  <result property="id" column="id" />
  <result property="username" column="username"/>
  <result property="password" column="password"/>
  <collection property="groups" ofType="com.entity.Group">
          <id property="id" column="gid"/>
          <result property="info" column="info"/>
  </collection>
</resultMap>
  <select id="getUserGroup"  resultMap="ug">
    select * from user u,    `group` g,user_group ug where g.id=#{id} and u.id=ug.uid and g.id=ug.gid
  </select>
  </mapper>

實體類

/**
 * 
 * @author 堅持到你GL
 *
 */
public class User {
    private int id;
    private String username;
    private String password;
    private List<Group> groups;
/**
 * 
 * @author 堅持到你GL
 *
 */
public class Group {
    private int id;
    private String info;
    private List<User>users;
/**
 * 中間表
 * @author 堅持到你GL
 *
 */
public class UserGroup {
    private int id;
    private int uid;
    private int gid;

一對一


 

關鍵在於

<collection property="groups" ofType="com.entity.Group">將ofType變成javaType
推薦個網址

mybatis關系映射之一對多和多對一

 

   【版本聲明】本文為博主原創文章,轉載請注明出處

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM