mybatis使用注解實現一對多查詢


一、實體類(getset方法,toString,構造方法忽略)

public class Dept {
    private Integer deptid;
    private String dname;
    private String dloc;
    private Set<Emp> emps= new HashSet<>();
}
public class Emp {
    private Integer empid;
    private String ename;
    private String esex;
    private Date ehiredate;
    private Double esal;
    private Dept dept;
}

二、接口方法

public interface DeptMapper {
    
    @Select("select * from dept ")
    @Results({@Result(property = "deptid" ,column = "deptid"),
        @Result(property = "dname" ,column = "dname"),
        @Result(property = "dloc" ,column = "dloc"),
        @Result(property = "emps",javaType = Set.class, column = "deptid",
        many = @Many(select="com.gx.mapper.EmpMapper.selectEmpByDeptId"))
        })
    public List<Dept> selectAll();
}
public interface EmpMapper {
    /**
     * 根據部門id查詢員工信息
     */
    @Select("select * from emp where deptid=#{deptid}")
    public List<Emp>selectEmpByDeptId(Integer deptid);
}

三、測試

public class myTest {

    SqlSession session = MyBatisUtils.openSession();
    DeptMapper deptMapper = session.getMapper(DeptMapper.class);
    
    @Test
    public void selectAllEmp() {
        List<Dept> list = deptMapper.selectAll();
        for (Dept d : list) {
            System.out.println(d);
        }
        MyBatisUtils.closeSession(session);
    }
}

 


免責聲明!

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



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