mybatis----;一对一查询

一、实体类从表添加主表的对象(主表user,从表account)

public class Account implements Serializable {
    private Integer id;
    private Integer uid;
    private  double money;

    //添加主表对象,并提供setter和getter方法
    private User user;
    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

二、进入sqlmapconfig配置一对一映射文件

<!--    定义封装user和accout对象的resultmap-->
    <resultMap id="accountUserMap" type="account">
<!--           property:实体类id  column:所对应的数据库中的id,注意起别名-->
        <id property="id" column="aid"></id>
        <result property="uid" column="uid"></result>
        <result property="money" column="money"></result>
<!--定义一对一的关系映射,也就是封装user对象-->
        <association property="user" column="uid" javaType="user">
            <id property="id" column="id"></id>
            <result property="username" column="username"></result>
            <result property="birthday" column="birthday"></result>
            <result property="address" column="address"></result>
            <result property="sex" column="sex"></result>
        </association>
    </resultMap>

    <!-- 查询所有 -->
    <select id="findAll" resultMap="accountUserMap" >
        SELECT u.*,a.id AS aid,a.MONEY,a.UID FROM USER u ,account a WHERE u.id = a.uid;
    </select>

 

三、测试

    @Test
    public void testFinaAll(){
        List<Account> accounts = accountDao.findAll();
        for (Account account:accounts){
            System.out.println("-------账户信息-------");
            System.out.println(account);
            System.out.println(account.getUser());
        }
    }

结果

-------账户信息-------
Account{id=1, uid=46, money=1000.0}
User{id=46, username='老王', address='北京', sex='男', birthday=Wed Mar 07 17:37:26 CST 2018}
-------账户信息-------
Account{id=2, uid=45, money=1000.0}
User{id=45, username='传智播客', address='北京金燕龙', sex='男', birthday=Sun Mar 04 12:04:06 CST 2018}
-------账户信息-------
Account{id=3, uid=46, money=2000.0}
User{id=46, username='老王', address='北京', sex='男', birthday=Wed Mar 07 17:37:26 CST 2018}
posted @ 2021-11-10 09:01  江南0o0  阅读(32)  评论(0编辑  收藏  举报