關系映射
在我看來這些實體類就沒啥太大關聯關系,不就是一個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
推薦個網址
【版本聲明】本文為博主原創文章,轉載請注明出處