#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 List
roles; 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 List
users; 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 {    List
findAll();}

 

RoleDao接口:

package cn.liuxingchang.dao;import cn.liuxingchang.domain.Role;import java.util.List;public interface RoleDao {    List
findAll();}

 

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() {        List
users = 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:#MyBatis:JNDI @FDDLC
下一篇:#MyBatis_一以多查询 @FDDLC

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月18日 23时16分03秒