mybatis(六)多表连接之多对多

Mybatis的多表连接操作,一对一、一对多、多对多 大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。麻烦帮忙转发一下这篇文章+关注我《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!00705672)]《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取! 阅读详情

本文主要是通过接口+映射文件的方式实现项目
一.创建一个java项目,新建javaProject
二.添加mybatis和mysql链接的jar包
三.创建数据库,特别注意创建外键
四.编写mybstis-cofig.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- mybatis-cofig配置文件 -->
<configuration>
    <!--配置别名 -->
    <typeAliases>
        <typeAlias type="com.mybatis.manyToMany.pojo.User" alias="user" />
        <typeAlias type="com.mybatis.manyToMany.pojo.Group" alias="group" />
        <typeAlias type="com.mybatis.manyToMany.pojo.UserGroup"
            alias="userGroup" />
    </typeAliases>
    <!-- 创建数据层 运行环境 -->
    <environments default="development">
        <environment id="development">
            <!-- JDBC事务管理 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 数据源 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/manytomany" />
                <property name="username" value="root" />
                <property name="password" value="110119" />
            </dataSource>
        </environment>
    </environments>
    <!-- 映射文件群 -->
    <mappers>
        <!-- 实体类对应的映射文件 -->
        <mapper resource="com/mybatis/manyToMany/mapper/UserMapper.xml" />
        <mapper resource="com/mybatis/manyToMany/mapper/GroupMapper.xml" />
        <mapper resource="com/mybatis/manyToMany/mapper/UserGroupMapper.xml" />
    </mappers>
</configuration>

五.创建实体类
1)User.java

/**
 * @author wuchao
 * @time 上午9:47:09
 * @description TODO
 */
package com.mybatis.manyToMany.pojo;

import java.util.List;

/**
 * @author wuchao
 * @time 上午9:47:09
 * 
 */
public class User {

    private int userId;
    private String userName;
    private String userMobile;
    private List<Group> groupList;

    /**
     * @author wuchao
     * @time 上午9:54:51
     */
    public User() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @author wuchao
     * @time 上午9:54:59
     */
    public User(int userId, String userName, String userMobile,
            List<Group> groupList) {
        super();
        this.userId = userId;
        this.userName = userName;
        this.userMobile = userMobile;
        this.groupList = groupList;
    }

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserMobile() {
        return userMobile;
    }

    public void setUserMobile(String userMobile) {
        this.userMobile = userMobile;
    }

    public List<Group> getGroupList() {
        return groupList;
    }

    public void setGroupList(List<Group> groupList) {
        this.groupList = groupList;
    }

}

2)Group.java

/**
 * @author wuchao
 * @time 上午9:50:45
 * @description TODO
 */
package com.mybatis.manyToMany.pojo;

import java.util.List;

/**
 * @author wuchao
 * @time 上午9:50:45
 * 
 */
public class Group {

    private int groupId;
    private String groupName;
    private List<User> userList;

    /**
     * @author wuchao
     * @time 上午9:56:18
     */
    public Group() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @author wuchao
     * @time 上午9:56:25
     */
    public Group(int groupId, String groupName, List<User> userList) {
        super();
        this.groupId = groupId;
        this.groupName = groupName;
        this.userList = userList;
    }

    public int getGroupId() {
        return groupId;
    }

    public void setGroupId(int groupId) {
        this.groupId = groupId;
    }

    public String getGroupName() {
        return groupName;
    }

    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }

    public List<User> getUserList() {
        return userList;
    }

    public void setUserList(List<User> userList) {
        this.userList = userList;
    }

}

3)UserGroup.java

/**
 * @author wuchao
 * @time 上午9:52:24
 * @description TODO
 */
package com.mybatis.manyToMany.pojo;

/**
 * @author wuchao
 * @time 上午9:52:24
 * 
 */
public class UserGroup {

    private int userGroupId;
    private int userId;
    private int groupId;

    /**
     * @author wuchao
     * @time 上午10:20:49
     */
    public UserGroup() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @author wuchao
     * @time 上午10:20:58
     */
    public UserGroup(int userGroupId, int userId, int groupId) {
        super();
        this.userGroupId = userGroupId;
        this.userId = userId;
        this.groupId = groupId;
    }

    public int getUserGroupId() {
        return userGroupId;
    }

    public void setUserGroupId(int userGroupId) {
        this.userGroupId = userGroupId;
    }

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public int getGroupId() {
        return groupId;
    }

    public void setGroupId(int groupId) {
        this.groupId = groupId;
    }

}

六.创建接口
1)UserMapper.java

/**
 * @author wuchao
 * @time 上午9:44:06
 * @description TODO
 */
package com.mybatis.manyToMany.dao;

import java.util.List;

import com.mybatis.manyToMany.pojo.User;

/**
 * @author wuchao
 * @time 上午9:44:06
 *
 */
public interface UserMapper {

    public User getUserById(int userId);
    public List<User> getAllUserGroupe();
}

2)GroupMapper.java

/**
 * @author wuchao
 * @time 上午9:45:04
 * @description TODO
 */
package com.mybatis.manyToMany.dao;

import com.mybatis.manyToMany.pojo.Group;

/**
 * @author wuchao
 * @time 上午9:45:04
 *
 */
public interface GroupMapper {

    public Group getGroupById(int groupId); 
}

3)UserGroupMapper.java

/**
 * @author wuchao
 * @time 上午9:46:24
 * @description TODO
 */
package com.mybatis.manyToMany.dao;

import java.util.List;

import com.mybatis.manyToMany.pojo.Group;
import com.mybatis.manyToMany.pojo.User;
import com.mybatis.manyToMany.pojo.UserGroup;

/**
 * @author wuchao
 * @time 上午9:46:24
 *
 */
public interface UserGroupMapper {

    public UserGroup getUserGroupById(int userGroupId);
    public List<Group> getGroupListByUserId(int userId);
    public List<User> getUserListByGroupId(int groupId);
}

七.创建与实体类对应的映射文件xml
1)UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.manyToMany.dao.UserMapper">
    <resultMap type="user" id="resultUserMap">
        <id property="userId" column="user_id" />
        <result property="userName" column="user_name" />
        <result property="userMobile" column="user_mobile" />
        <collection property="groupList" ofType="group" column="grouper_id">
            <id property="groupId" column="grouper_id" />
            <result property="groupName" column="grouper_name" />
        </collection>
    </resultMap>
    <select id="getUserById" parameterType="int" resultMap="resultUserMap">
        select *
        from user u
        where u.user_id = #{userId}
    </select>
    <select id="getAllUserGroupe" resultMap="resultUserMap">
        select u.*,g.*
        from user u
        inner join
        user_grouper ug
        on u.user_id = ug.user_id
        inner join
        grouper g
        on g.grouper_id = ug.grouper_id
    </select>
    <select id="getGroupByUserId" resultMap="resultUserMap">
        select g.*
        from grouper g ,user_grouper ug
        where g.grouper_id = ug.grouper_id and ug.user_id = #{userId}
    </select>
</mapper>

2)GroupMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.manyToMany.dao.GroupMapper">
    <resultMap type="group" id="resultGroupMap">
        <id property="groupId" column="grouper_id" />
        <result property="groupName" column="grouper_name" />
    </resultMap>
    <select id="getGroupById" parameterType="int" resultMap="resultGroupMap">
        select *
        from grouper g
        where g.grouper_id = #{groupId}
    </select>
</mapper>

3)UserGroupMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.manyToMany.dao.UserGroupMapper">
    <resultMap type="user" id="resultUserListUserGroupMap">
        <id property="userId" column="user_id" />
        <result property="userName" column="user_name" />
        <result property="userMobile" column="user_mobile" />
    </resultMap>
    <resultMap type="group" id="resultGroupListUserGroupMap">
        <id property="groupId" column="grouper_id" />
        <result property="groupName" column="grouper_name" />
    </resultMap>

    <!-- 根据用户ID,查询用户所在的用户组 -->
    <select id="getGroupListByUserId" parameterType="group"
        resultMap="resultGroupListUserGroupMap">
        select g.*
        from grouper g,user_grouper ug
        where g.grouper_id=ug.grouper_id and ug.user_id=#{userId}
    </select>

    <!-- 根据用户组ID,查询用户组下的所有用户 -->
    <select id="getUserListByGroupId" parameterType="user"
        resultMap="resultUserListUserGroupMap">
        select u.*
        from user u, user_grouper ug
        where u.user_id = ug.user_id and ug.grouper_id = #{groupId}
    </select>
</mapper>

八.测试类,测试结果和项目结构
1)Test.java

/**
 * @author wuchao
 * @time 上午10:21:47
 * @description TODO
 */
package com.mybatis.manyToMany.test;

import java.io.Reader;
import java.util.List;

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 com.mybatis.manyToMany.dao.GroupMapper;
import com.mybatis.manyToMany.dao.UserGroupMapper;
import com.mybatis.manyToMany.dao.UserMapper;
import com.mybatis.manyToMany.pojo.Group;
import com.mybatis.manyToMany.pojo.User;
import com.mybatis.manyToMany.pojo.UserGroup;

/**
 * @author wuchao
 * @time 上午10:21:47
 * 
 */
public class Test {

    private static Reader reader;
    private static SqlSessionFactory sqlSessionFactory;
    /**
     * @author wuchao
     * 这段静态代码块,是通过读取mybatis的配置来创建sqlSessionFactory
     */
    static {
        try {
            reader = Resources.getResourceAsReader("mybatis-config.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }

    /**
     * 
     * @author wuchao
     * @time 下午8:44:26
     * 获取session
     */
    public SqlSessionFactory getSession() {
        return sqlSessionFactory;
    }

    /**
     * 主方法
     * @author wuchao
     * @time 下午8:44:49
     */
    public static void main(String args[]) {
        SqlSession session = sqlSessionFactory.openSession();
        try {
            //根据用户ID,查询用户所在的用户组 
            //getGroupListByUserId(1);
            //获取所有的信息
            //getAllUserGroupe();
            //getUserById(1);
            //根据用户组ID,查询用户组下的所有用户
            getUserListByGroupId(1);
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }

    /**
     * 通过userId获取user
     * @author wuchao
     * @time 下午8:45:07
     */
    public static void getUserById(int userId) {
        SqlSession session = sqlSessionFactory.openSession();
        try {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            User user = userMapper.getUserById(userId);
            System.out.println("查询到的UserId为:" + user.getUserId());
            System.out.println("查询到的UserName为:" + user.getUserName());
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally{
            session.close();
        }
    }


    /** 根据用户ID,查询用户所在的用户组 
     * @author wuchao
     */
    public static void getGroupListByUserId(int userId){
        SqlSession session = sqlSessionFactory.openSession();
        try {
            UserGroupMapper userGroupMapper = session.getMapper(UserGroupMapper.class);
            List<Group> groupList = userGroupMapper.getGroupListByUserId(userId);
            System.out.println("查询到的结果有"+groupList.size()+"个");
            System.out.println("00"+groupList.getClass());
            for(Group group : groupList){
                System.out.println("groupId:"+group.getGroupId());
                System.out.println("groupName"+group.getGroupName());
            }
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally{
            session.close();
        }
    }
    /**
     * 根据用户组ID,查询用户组下的所有用户
     * @author wuchao
     * @time 下午8:46:11
     */
    public static void getUserListByGroupId(int groupId){
        SqlSession session = sqlSessionFactory.openSession();
        try {
            GroupMapper groupMapper = session.getMapper(GroupMapper.class);
            Group group = groupMapper.getGroupById(groupId);
            System.out.println("group的名字是:"+group.getGroupName());
            UserGroupMapper userGroupMapper = session.getMapper(UserGroupMapper.class);
            List<User> userList = userGroupMapper.getUserListByGroupId(groupId);
            for(User user : userList){
                System.out.println("通过group查询到user的ID是:"+user.getUserId());
                System.out.println("通过group查询到user的NAME是:"+user.getUserName());
                System.out.println("通过group查询到user的MOBILE是:"+user.getUserMobile());
            }
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally{
            session.close();
        }
    }

    /**
     * @author wuchao
     * 获取所有信息
     */
    public static void getAllUserGroupe(){
        SqlSession session = sqlSessionFactory.openSession();
        try {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            List<User> userList = userMapper.getAllUserGroupe();
            for(User user : userList){
                for(Group group : user.getGroupList()){
                    System.out.println(user.getGroupList().size());
                    System.out.println("groupId:"+group.getGroupId());
                    System.out.println("groupName:"+group.getGroupName());
                }
                System.out.println("userId:"+user.getUserId());
                System.out.println("userName:"+user.getUserName());
                System.out.println("userMobile:"+user.getUserMobile());
            }
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally{
            session.close();
        }
    }
}

这里写图片描述这里写图片描述

Mybatis多表连接查询——多对多 阅读详情

相关推荐

MyBatis框架的 resultMap(自连接,一对多,多对多)映射

多对多在这个多对多的映射中,是通过3个表进行的连接,其实剖析内层还是一对多的关系,只是多添加一个表,把彼此的关系填上,根据id进行的查询 ,映射。首先我们的表结构是 学生表,教师表,还有一个关联表 首先1个老师可以教多个学生,一个学生也可以被多老师教,所以个表的关系是1号老师教1号和2号学生1号 学生也可以被1号2号老师教。对于这个多对多的映射 我们首先要有和思路就是他返回的是一个对象 我们查的

qq_36074043的博客 2989

多表操作

1. 实体间存在着关系 叫做关联关系(有 或 从属) 1:1关联关系 1:*关联关系 *:*关联关系 2. 如何通过Mybaits处理 存在关联关系的实体 A. 表 为表添加外键: 1:1 外键随意 1:* 外键加在多的一方 : 外键需要单独的关系表 B. 实体 实体的处理:添加关系属性 关系属性:将关系的另一方作为本方的属性存储起来 关系的双向性: 双向关系:可以通过任意一方找到另一方 单向关系:只能从关系的一方找到另一方 C. Mapper文件 Mapper的处理: 1、sql 需要进行

qq_37287018的博客 323

MyBatis 多表关联查询

MyBatis 多表关联查询:一对多查询, 多对一查询, 自连接查询: 使用多对一的方式实现自连接, 使用一对多的方式实现自连接, 多对多查询

不迁怒,不贰过。小知识,大智慧。 4403

MyBatis——MyBatis的关联查询

MyBatis的关联查询(一对一,一对多,多对多)

wan的博客 1237

AFC自动售检票系统与人工智能AI结合的关键应用方案

针对售检票、大客流管理、设备运维及服务优化提供了可落地的技术支持和实现细节,可作为地铁智慧交通项目的实践参考

leijinquan01的博客 1513

电压比较器---滞回比较器(施密特触发器)

当输入电压从小电压开始增加,当其大于VT+时,电压比较器输出低电平,此时阈值电压变成下门限电压(VT-);当输入电压从大电压开始减小,当其小于VT-时,电压比较器输出高电平,此时阈值电压变成上门限电压(VT+);只有当第一次超过上门限电压或者下门限电压值,电压比较器的输出才会翻转变化;Uo为比较输出电压,有两种电压状态VoH(高电平)和VoL(低电平);当Uo输出为高时,电压比较器的阈值电压是上门限电压(VT+);当Uo输出为低时,电压比较器的阈值电压是下门限电压(VT-);Vref为比较参考电压;

weixin_69076249的博客 1万+

MyBatis如何实现多表联查

首先,使用Mysql数据库,创建两个表,分别为学生表Student表和班级表Class表,在Student表中添加列classid参照主表的列id的外键约束。学生表Student表:班级表Class表 :现在去写Dao层和实体类Student实体类: Class实体类: Mapper接口: 一对一关系的xml文件配置:实现一对一的关系查询,即一条student信息对应一条class信息 这里主要配置的就是resultMap了,配置javabean类中属性与数据库列名的对应关系,as

blanceage的博客 7182

别再为数据发愁了!盘点5个公开可用的医学图像数据集(含MRI/CT/PET合成任务)

本文详细介绍了5个高质量的公开医学图像数据集,涵盖MRI、CT和PET三大模态,适用于深度学习模型训练和医学图像合成任务。每个数据集均提供下载指南、预处理技巧和PyTorch加载示例,帮助研究人员快速获取和处理数据,解决医学AI开发中的数据瓶颈问题。

weixin_30689307的博客 524

Mybatis-多表联查

Mybatis-多表联查

qq_52998673的博客 5134

Nature风格的北半球投影图,几行代码就能绘制...

在子刊***Nat. Clim. Chang.***中,通过北极俯视投影表示NAO和AO的EOF分解。仅在定义图层的时候设置为该投影,其余设置content,绘制contourf都是PlateCaree。如子刊Nature Geosci中表示了海冰的漂移,还添加了DEM底图,非常美观。以海温数据为例,ERA5月温度平均,是一张721*1440的0.25degTIF。现在的结果看起来不错,但太大了,我们如果只需要北半球的数据,则需要指定经纬度。绘制完结果也是正方形,和ArcGIS差不多,见之前的推文。

wlh2067的博客 1292

一文介绍Linux EAS

EAS只在系统负载不重时,即系统中每个CPU的利用率都低于其算力的80%时才被启用,而且选出的最节能CPU只有比线程当前运行的CPU节约能量大于6%时,线程才会迁移到该CPU运行。因此EAS为线程选择最节约能量的CPU来运行的前提条件是很苛刻的,针对重载场景(比如游戏),EAS的功能应该很少被使用起来,针对重载场景的功耗优化,这里可能是一个值得尝试的点。算力(capacity)是CPU调度中的一个基础概念,它反映的是一个CPU的计算能力,是个规格化的值,可以通过读取Android手机的文件节点。

youzhangjing_的博客 1234

Mybatis多对多

原 MyBatis 关联映射之多对多 ...

qq_30079781的博客 758

AI视频生成本地搭建图文详细过程

在自己的电脑上搭建一个AI,主要用于通过自己输入的关键字来自动生成视频文案,把视频文案自动生成视频,再自动给视频配音配字幕。

张小三的博客 4692

Mybatis从入门到精通系列 10 —— Mybatis多表查询之多对多查询

  本文针对 Mybatis 多表查询的多对多查询进行详细讲解。   本文案例主要以用户和角色的模型来分析 Mybatis 多表关系。用户为 User 表,角色表为 Role 表,中间表为 User_role。一个用户可以拥有多个角色,一个角色可以赋予多个用户,role_desc 代表角色描述。具体关系如下: 文章目录一、多表查询(多对多)分析步骤二、多对多查询2.1 编写角色实体类2.2 编写 SQL 语句2.3 定义持久层角色的 Dao 接口2.4 IRoleDao.xml 文件中的查询配置信息2.

秀岩的博客 3232

orangepi香橙派用户名及密码修改和VNC远程登陆

1、修改 /etc/passwd用户信息文件 vim /etc/passwd #admin❌503:501::/home/admin:/bin/bash #把用户名admin改成rest #test❌503:501::/home/test:/bin/bash 2、修改 /etc/shadow用户密码文件 vim /etc/shadow #admin:Dnakfw28zf38w:8764:0:168:7::: #由于密码加密方式存放,只修改用户名即可(密码不变) #test:Dnakfw28zf38w:876

weixin_40227845的博客 5660

减法平均优化器(SABO)算法详解:从数学原理到工程应用

减法平均优化器(SABO)是一种基于数学概念的新型元启发式优化算法,由Trojanovský和Dehghani于2023年提出。该算法通过v-减法运算和平均值计算实现搜索优化,核心创新是采用目标函数值差异符号引导搜索方向。SABO具有参数少、结构简单、收敛快等特点,在高维复杂问题中表现优异。算法通过种群平均值保持多样性,利用符号函数确保搜索方向改进,自然平衡探索与开发。MATLAB实现显示其计算复杂度为O(N²·D),与主流群体智能算法相当。SABO不依赖生物或物理隐喻,数学基础坚实,在工程优化和机器学习领

qq_42212808的博客 165

JavaWeb——MyBatis框架之多表查询操作实战案例总结(MyBatis1对1查询,MyBatis1对多查询,MyBatis多对多查询)

多表之间的关系,分为一对一、一对多(多对一)、多对多,具体的不再赘述了,在数据库专栏-MySQL数据中有总结过。我们这里详细总结下MyBatis中的多表操作,所使用的工程源码会在文章末尾附上。 1 MyBatis的多表查询 以一个用户和账户的示例说明多表查询的实现步骤: 【需求】:一个用户可有多个账户(多个账户也可属于一个用户),一个账户只能属于一个用户; 【步骤】: 1)建立数据库表:用户表、账户表,在账户表添加外键,实现一对多关系; 2)建立两个实体类:用户实体类、账户实体类,实体类要...

数字世界 万物互联 2255

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

mybatis的多表查询(一对一,一对多,多对多)

mybatis多表查询 表之间的关系有几种: 一对多 多对一 一对一 多对多 举例: 用户和订单就是一对多 订单和用户就是多对一 一个用户可以下多个订单 多个订单属于同一个用户 ​ 人和身份证号就是一对一 ​ 一个人只能有一个身份证号 ​ 一个身份证号只能属于一个人 ​ 老师和学生之间就是多对多 ​ 一个学生可以被多个老师教过 ​ 一个老师可以交多个学生 特例: 如果拿出每一个订单,他都只能属于一个用户。 所以Mybatis就把多对一看成了一对一。 mybat

qq_43430343的博客 3204

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

mybatis多表查询(一对多,多对一,多对多)

@TOC 多对一、一对多 准备阶段 建立一个部门表和员工表: 多个员工可以同属一个部门:这是多对一 一个部门有多个员工:这是一对多 首先在mysql数据库中建表。建立dept表和emp表 dept表 emp表 建立dept实体类和emp实体类 emp实体类(其中包含部门的实体类对象) dept实体类(包含员工的实体类对象集合) 建立Dao接口 查询所有员工的Dao接口 public int...

单线程的Daniel的博客 1204

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

mybatis连接池,动态的Sql语句,多表查询一对多,多对多

mybatis汇总1.mybatis连接池与实务2.mybatis动态的Sql语句3.mybatis多表查询一对多4.mybatis多表查询多对多 1.mybatis连接池与实务 2.mybatis动态的Sql语句 3.mybatis多表查询一对多 4.mybatis多表查询多对多 ...

XiaoCoder的博客 711

Mybatis多表查询分析+示例(一对多、多对多)

蜂信物联FastBee平台https://gitee.com/beecue/fastbee阿里资料开源项目https://gitee.com/vip204888百度低代码前端框架https://gitee.com/baidu/amisOpenHarmony开源项目https://gitcode.com/openharmony仓颉编程语言开放项目https://gitcode.com/Cangjie注意:第二种方式,将返回值改 为了Account类型。

2401_86354053的博客 1225

Mybatis 多表查询(一对一,一对多,多对多)

Mybatis 多表查询 一对一查询(多对一) 需求 查询所有账户信息,关联查询下单用户信息。 注意: 因为一个账户信息只能供某个用户使用,所以从查询账户信息出发关联查询用户信息为一对一查询。如 果从用户信息出发查询用户下的账户信息则为一对多查询,因为一个用户可以有多个账户。 方式一 定义账户信息的实体类 /** * * <p>Title: Account</p> * <p>Description: 账户的实体类</p> */ public class

你好,摆渡人的博客 1931

Mybatis多表查询之多对多(角色到用户的查询,用户到角色的查询)

Mybatis多表查询之多对多 实现用户和角色之间的多对多 用户与角色之间的关系模型: 一个用户可以有多个角色。 一个角色可以赋予多个用户。 步骤: 1.建立两张表,用户表和角色表。 让用户表和角色表之间具有多对多的关系。 需要使用中间表,中间表包含各自的主键,在中间表中是外键。 2.建立两个实体类:用户实体类和角色实体类。 让用户和角色的实体类能体现出来多对多的关系。 各自包含对方的一个集合引用。 3.建立两个配制文件 用户的配制文件。 角色的配制文件。 4.实现配置:

骑着蜗牛行天下 4534
上一篇: myabtis(五) mybatis多表连接之多对一
下一篇: mybatis(七) mybatis与spring集成
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值