mybatis 注解开发之(多表查询的一对一及一对多查询)

    xiaoxiao2023-10-20  145

    ---------------主表Account所对应的dao文件--------------------  

     

    package com.sealong.dao;

    import com.sealong.domain.Account; import org.apache.ibatis.annotations.*; import org.apache.ibatis.mapping.FetchType;

    import java.util.List;

    public interface IAccountDao {     /**      * 查询所有用户      * @return      */     @Select("select * from account")     /**      * 定义一个Results      * id为该Results的名字,可以供其他方法调用      * value为一个包含Result对象的数组      * Result的column表示数据表的字段名,      * property为数据表当前column字段所映射的对象的属性      * id表示该column该字段是否为主键,默认条件下为非主键      * one用于表与表之间一对一映射时使用      * one的select属性,一对一查询所要执行的方法名      * fetchType表示数据加载形式(FetchType.EAGER表示立即加载,FetchType.LAZY表示懒加载      */     @Results(id = "accountMap" ,value = {             @Result(id = true,column = "id" ,property = "id"),             @Result(column = "uid",property = "uid"),             @Result(column = "money" ,property = "money"),             @Result(property = "user",column = "uid", one=@One(select="com.sealong.dao.IUserDao.findOneById",fetchType= FetchType.EAGER)一对一查询使用

    / many=@Many(select="com.sealong.dao.IUserDao.findOneById",fetchType= FetchType.EAGER)一对多查询使用)     })     List<Account> findAll(); }

     

    ---------------从表user所对应的dao文件--------------------

     

    package com.sealong.dao; import com.sealong.domain.User; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import java.util.List; public interface IUserDao { /** * 通过用户Id查找一个用户 * @param userId * @return */ @Select("select * from user where id = #{id}") User findOneById(Integer userId); }

     

    最新回复(0)