本文共 4444 字,大约阅读时间需要 14 分钟。
问题:查询角色获取角色下的用户信息。
实现:Role 到 User 多对多。
创建 User 和 Role 实体类,实现多对多关系。每个 Role 可以关联多个 User,反之亦然。
public class Role implements Serializable { private Integer roleId; private String roleName; private String roleDesc; // Role 到 User 的映射关系 private Listusers; public void setUsers(List users) { this.users = users; } public List getUsers() { return users; }}
public class User implements Serializable { private Integer id; private String username; private Date birthday; private String sex; private String address; // User 到 Role 的映射关系 private Listroles; public void setRoles(List roles) { this.roles = roles; } public List getRoles() { return roles; }}
定义接口,表示数据库操作。
public interface IRoleDao { // 查询所有 Role 角色 ListfindRolelAll();}
在 SqlMapConfig.xml 中配置 Role Dao。
测试 Role 到 User 的映射关系。
public class RoleTest { private InputStream in; private SqlSessionFactory factory; private SqlSession sqlSession; private IRoleDao roleDao; @Before public void init() throws IOException { in = Resources.getResourceAsStream("SqlMapConfig.xml"); factory = new SqlSessionFactoryBuilder().build(in); sqlSession = factory.openSession(true); roleDao = sqlSession.getMapper(IRoleDao.class); } @After public void destory() throws Exception { sqlSession.close(); in.close(); } // 测试查询所有角色并获取用户信息 @Test public void testFindRolelAll() { Listroles = roleDao.findRolelAll(); for (Role role : roles) { System.out.println("这是一条记录:" + role); System.out.println("关联的用户:" + role.getUsers()); } }}
问题:查询用户获取角色信息。
实现:User 到 Role 多对多。
创建 User 和 Role 实体类,实现多对多关系。反之亦然,用户可以关联多个角色。
public class User implements Serializable { private Integer id; private String username; private Date birthday; private String sex; private String address; // User 到 Role 的映射关系 private Listroles; public void setRoles(List roles) { this.roles = roles; } public List getRoles() { return roles; }}
public class Role implements Serializable { private Integer roleId; private String roleName; private String roleDesc; // Role 到 User 的映射关系 private Listusers; public void setUsers(List users) { this.users = users; } public List getUsers() { return users; }}
定义 UserDao 接口。
public interface IUserDao { // 查询所有用户并获取角色信息 ListfindAll();}
配置 UserDao。
测试 User 到 Role 的映射关系。
public class UserTest { private InputStream in; private SqlSessionFactory factory; private SqlSession sqlSession; private IUserDao userDao; @Before public void init() throws IOException { in = Resources.getResourceAsStream("SqlMapConfig.xml"); factory = new SqlSessionFactoryBuilder().build(in); sqlSession = factory.openSession(true); userDao = sqlSession.getMapper(IUserDao.class); } @After public void destory() throws Exception { sqlSession.close(); in.close(); } // 测试查询所有用户并获取角色信息 @Test public void testFindAll() { Listusers = userDao.findAll(); for (User user : users) { System.out.println("这是一条记录:" + user); System.out.println("关联的角色:" + user.getRoles()); } }}
转载地址:http://okerz.baihongyu.com/