MyBatis——[注解方式]一对多查询DEMO
API
@Select: 类似于
@Insert: 类似于
@Update: 类似于
@Delete: 类似于
@Results: 类似于
@Result: 类似于
的子标签 @One: 类似于
@Many: 类似于
源代码
DEMO ONE
public interface UserDao {/*** 用户的持久层接口* @return*/@Select("select * from user ")@Results({@Result(id=true,property = "id",column = "id"),@Result(property = "name" ,column = "name"),@Result(property = "positions",column ="id" ,javaType = List.class,many=@Many(select="cn.itcast.dao.PositionDao.findById",fetchType= FetchType.LAZY))})List findAll();public interface PositionDao {@Select("select * from position p,(select pid from u_p where uid=#{id}) u where p.id in(u.pid)")@Results({@Result(id=true,property = "id",column = "id"),@Result(property = "name" ,column = "name"),@Result(property = "permissions",column ="id" ,javaType = List.class,many=@Many(select="cn.itcast.dao.PermissionDao.findById",fetchType= FetchType.LAZY))})List findById();
} public interface PermissionDao {@Select("select * from permission p,(select prid from ps_pr where psid=#{id}) u where p.id in (u.prid) ")@Results({@Result(id=true,property = "id",column = "id"),@Result(property = "name" ,column = "name")})List findById();
}
DEMO TWO
public interface ResourceMapper {@Select("SELECT * FROM resource")@Results(value = {@Result(property = "id",column = "id",id = true),@Result(property = "pattern",column = "pattern"),@Result(property = "roles",column = "id",javaType = List.class,many = @Many(select = "club.zstuca.myzstu.mapper.RoleMapper.loadRolesByResourceId",fetchType = FetchType.LAZY))})List getAllResource();
}
public interface RoleMapper {@Select("SELECT * FROM role WHERE id=#{id}")Role loadRolesById(String id);@Select("SELECT * FROM resource_role rr LEFT JOIN role r ON rr.rid=r.id WHERE rr.sid=#{resourceId}")List loadRolesByResourceId(String resourceId);
}
参考文章
https://blog.csdn.net/desert568/article/details/79079151
http://bbs.itheima.com/thread-440927-1-1.html
https://zhuanlan.zhihu.com/p/66919945
https://blog.csdn.net/qq_42524262/article/details/97664924
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
