mbatis--一对多查询

一、在主表实体类创建从表实体的list集合(主表user,从表account)

public class User implements Serializable {

    private Integer id;
    private String username;
    private String address;
    private String sex;
    private Date birthday;

    //一对多关系映射:主表实体应包含从表实体的集合引用
    private List<Account> accounts;

    public List<Account> getAccounts() {
        return accounts;
    }

 

二、进入xml配置

<!--    多对多查询配置-->
<!--    定义user的resultmap-->
    <resultMap id="userAccountMap" type="user">
        <id property="id" column="id"></id>
        <result property="username" column="username"></result>
        <result property="birthday" column=""></result>
        <result property="sex" column="sex"></result>
        <result property="address" column="address"></result>

<!--       配置user中accounts集合的映射;ofType:集合中的类型-->
       <collection property="accounts" ofType="account">
            <id property="id" column="aid"></id>
           <result property="uid" column="uid"></result>
           <result property="money" column="money"></result>
       </collection>
    </resultMap>
    <!-- 查询所有 -->
    <select id="findAll" resultMap="userAccountMap">
        SELECT * FROM USER u LEFT JOIN account a ON u.id = a.uid;
    </select>

三、测试

 @Test
    public void testFinaAll(){
       List<User> users = userDao.findAll();
       for (User user:users){
           System.out.println("------用户信息--------");
           System.out.println(user);
           System.out.println(user.getAccounts());
       }
    }

 

posted @ 2021-11-10 09:35  江南0o0  阅读(34)  评论(0编辑  收藏  举报