mybatis框架学习-多表查询

啰里巴嗦

mybatis中的多表查询
    表之间的关系有几种:
        一对多
        多对一
        一对一
        多对多
    举例:
        用户和订单就是一对多
        订单和用户就是多对一
            一个用户可以下多个订单
            多个订单属于同一个用户

        人和身份证号就是一对一
            一个人只能有一个身份证号
            一个身份证号只能属于一个人

        老师和学生之间就是多对多
            一个学生可以被多个老师教过
            一个老师可以交多个学生
    特例:
        如果拿出每一个订单,他都只能属于一个用户。
        所以Mybatis就把多对一看成了一对一。

    mybatis中的多表查询:
        示例:用户和账户
            一个用户可以有多个账户
            一个账户只能属于一个用户(多个账户也可以属于同一个用户)
        步骤:
            1、建立两张表:用户表,账户表
                让用户表和账户表之间具备一对多的关系:
                需要使用外键在账户表中添加
            2、建立两个实体类:用户实体类和账户实体类
                让用户和账户的实体类能体现出来一对多的关系
            3、建立两个配置文件
                用户的配置文件
                账户的配置文件
            4、实现配置:
                当我们查询用户时,可以同时得到用户下所包含的账户信息
                当我们查询账户时,可以同时得到账户的所属用户信息

        示例:用户和角色
            一个用户可以有多个角色
            一个角色可以赋予多个用户
        步骤:
            1、建立两张表:用户表,角色表
                让用户表和角色表具有多对多的关系。
                需要使用中间表,中间表中包含各自的主键,在中间表中是外键。
            2、建立两个实体类:用户实体类和角色实体类
                让用户和角色的实体类能体现出来多对多的关系
                各自包含对方一个集合引用
            3、建立两个配置文件
                用户的配置文件
                角色的配置文件
            4、实现配置:
                当我们查询用户时,可以同时得到用户所包含的角色信息
                当我们查询角色时,可以同时得到角色的所赋予的用户信息

原文地址:https://www.cnblogs.com/ccoonngg/p/11330392.html

时间: 2024-11-05 21:53:40

mybatis框架学习-多表查询的相关文章

SSH框架的多表查询和增删查改 (方法一)上

原创作品,允许转载,转载时请务必标明作者信息和声明本文章==>  http://www.cnblogs.com/zhu520/p/7772823.html   因为最近在做Android 练习的项目,使用增删查改的时候还是使用jdbc的增删查改 发现实在是太麻烦了,所有果断抛弃它,使用ssh, 但是发现不会....经过了四天的时间我终于弄懂了. 哪个大神看到有问题指点一下. 在弄这前要先明白一下@Component @Controller @Service @Repository 这些注释 可以

Mybatis框架学习(四)—查询缓存与spring的整合开发

1       项目整体目录 2       查询缓存 2.1     缓存的意义 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题. 2.1    mybatis持久层缓存 mybatis提供一级缓存和二级缓存 mybatis一级缓存是一个SqlSession级别,sqlsession只能访问自己的一级缓存的数据,二级缓存是跨sqlSession,是mapper级别的缓存,对于mappe

Mybatis 框架学习

Mybatis 一. 入门 1. JDBC 回顾 (1). 准备数据库 新建 mybatis_learn 数据库 执行 sql 脚本 1 -- ---------------------------- 2 -- Table structure for `Blog` 3 -- ---------------------------- 4 DROP TABLE IF EXISTS `Blog`; 5 CREATE TABLE `Blog` ( 6 `id` int(11) NOT NULL AUTO

MyBatis框架学习(一)

MyBatis介绍 MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并改名为MyBatis.2013年11月迁移到Github.iBatis一词来源于"internet"和"abatis"的组合,是一个基于Java的持久层框架.iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO). 当我们在DAO层使用jdb

使用mybatis框架实现带条件查询-多条件

在实际的项目开发中,使用mybatis框架查询的时候,不可能是只有一个条件的,大部分情况下是有多个条件的,那么多个条件应该怎样传入参数: 思考:  需求:根据用户姓名(模糊查询),和用户角色对用户表进行查询 UserMapper.xml 1 <!-- 按照名称查询,用户角色,查询用户列表 mybatis给最基础的数据类型都内建了别名,对大小写是不敏感的--> 2 <select id="getUserListByUserName2" parameterType=&qu

Mybatis框架学习03

写在前面 本文接https://www.cnblogs.com/wushenjiang/p/12506992.html,至此mybatis的学习已经基本完成.近一个月会进行Android的冲刺学习,所以将SSM的学习暂且滞后. 高级映射 高级映射主要分为一对一,一对多,多对多,延迟加载等.以下分别进行解释: 一对一查询(resultType实现) 需求 首先我们要提出一个需求,以便我们开展学习.需求:查询订单信息,关联查询创建订单的用户信息. po的编写 这里我们直接继承原订单类,并添加新的属性

MyBatis框架学习

MyBatis框架 1.MyBatis框架简介 目的(最大的作用):实现sql语句和java代码的分离,替代的是mvc模式中的Dao层,是持久层框架. 搭建方式: 1.配置mybatis全局配置文件: a.固定的文件头,根标签为<configuration></configuration>: b.在根标签内存在多个标签,<settings></settings>:设置日志文件打印内容的标签: <typeAliases></typeAlias

Hibernate框架学习(五)——批量查询(概述)

一.HQL查询(Hibernate Query Language)多表查询,但不复杂时使用 Hibernate独家查询语言,属于面向对象的查询语言 1.基本查询 2.条件查询 注意:HQL语句中不可能出现任何数据库相关的信息 1)?占位符 2)命名占位符 3.分页查询 二.Criteria查询(单表条件查询) Hibernate自创的无语句,面向对象查询 1.基本查询 2.条件查询: SQL中的表示 Criteria中的表示 > gt >= ge < lt <= le == eq

hibernate学习---单表查询

我们都知道SQL是非常强大的,为什么这么说呢?相信学过数据库原理的同学们都深有体会,SQL语句变化无穷,好毫不夸张的说可以实现任意符合我们需要的数据库操作,既然前面讲到Hibernate非常强大,所以Hibernate也是能够实现SQL的一切数据库操作. 在SQL中,单表查询是最常用的语句,同理Hibernate最常用到的也是查询语句,所以今天就来讲讲Hibernate的单表查询: 今天要将的内容分以下几点: 查询所有 查询结果排序 为查询参数动态赋值 分页查询 模糊查询 唯一性查询 聚合函数查