#MyBatis多表查询 #多对多查询 @FDDLC
发布日期:2021-06-30 20:56:50
浏览次数:2
分类:技术文章
本文共 5888 字,大约阅读时间需要 19 分钟。
我们知道,用户与角色之间存在多对多的关系:
关键配置1:
关键配置2:
最后附上源码:
项目结构:
pom.xml:
4.0.0 org.example P076_MyBatis_M2N 1.0-SNAPSHOT mysql mysql-connector-java 8.0.16 org.mybatis mybatis 3.4.5 junit junit 4.12 test
数据库的相关信息:
MySQL:8.0.16 port:3306 database:multi_table
user表:
role表:
user_role表:
User类:
package cn.liuxingchang.domain;import java.io.Serializable;import java.util.List;public class User implements Serializable { private Integer id; private String name; private Integer age; private Listroles; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public List getRoles() { return roles; } public void setRoles(List roles) { this.roles = roles; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + ", roles=" + roles + '}'; }}
Role类:
package cn.liuxingchang.domain;import java.io.Serializable;import java.util.List;public class Role implements Serializable { private Integer id; private String role; private String info; private Listusers; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } public List getUsers() { return users; } public void setUsers(List users) { this.users = users; } @Override public String toString() { return "Role{" + "id=" + id + ", role='" + role + '\'' + ", info='" + info + '\'' + ", users=" + users + '}'; }}
UserDao接口:
package cn.liuxingchang.dao;import cn.liuxingchang.domain.User;import java.util.List;public interface UserDao { ListfindAll();}
RoleDao接口:
package cn.liuxingchang.dao;import cn.liuxingchang.domain.Role;import java.util.List;public interface RoleDao { ListfindAll();}
UserMapper.xml:
RoleMapper.xml:
mybatis.xml:
Test.java:
import cn.liuxingchang.dao.RoleDao;import cn.liuxingchang.dao.UserDao;import cn.liuxingchang.domain.Role;import cn.liuxingchang.domain.User;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.After;import org.junit.Before;import java.io.InputStream;import java.util.List;public class Test { private InputStream in; private SqlSessionFactory factory; private SqlSession sqlSession; private UserDao userDao; private RoleDao roleDao; @Before public void before() throws Exception { in = Resources.getResourceAsStream("mybatis.xml"); factory = new SqlSessionFactoryBuilder().build(in); sqlSession = factory.openSession(); userDao = sqlSession.getMapper(UserDao.class); roleDao = sqlSession.getMapper(RoleDao.class); } @After public void after() throws Exception { sqlSession.commit(); sqlSession.close(); in.close(); } @org.junit.Test public void findAllUsersTest() { Listusers = userDao.findAll(); for (User user : users) { System.out.println(user); } } @org.junit.Test public void findAllRolesTest() { List roles = roleDao.findAll(); for(Role role: roles) { System.out.println(role); } }}
转载地址:https://liuxingchang.blog.csdn.net/article/details/109102263 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月18日 23时16分03秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
POJ - 3067 Japan (树状数组 思维)
2019-04-30
POJ - 2352 Stars (树状数组 入门题)
2019-04-30
HDU - 1166 敌兵布阵 (树状数组模板题/线段树模板题)
2019-04-30
CodeForces - 761C Dasha and Password (思维 暴力)
2019-04-30
POJ - 2481 Cows (树状数组 入门题)
2019-04-30
ACM-ICPC 2018 焦作赛区网络预赛 I. Save the Room
2019-04-30
CodeForces - 987C Three displays (暴力/dp)
2019-04-30
计蒜客 NAIPC 2016 F. Mountain Scenes(dp)
2019-04-30
牛客国庆集训派对Day4——I 连通块计数(思维)
2019-04-30
牛客国庆集训派对Day4——G 区间权值(找规律,双重前缀和)
2019-04-30
牛客国庆集训派对Day5——L 数论之神(找规律/数论)
2019-04-30
CodeForces - 629B Far Relative’s Problem(模拟)
2019-04-30
CodeForces - 1059B Forgery (思维)
2019-04-30
CodeForces - 456C Boredom (dp)
2019-04-30
CodeForces - 960B Minimize the error (思维,贪心)
2019-04-30
CodeForces - 97B Superset (思维/分治/构造)
2019-04-30