Mybatis学习笔记(三)

news/2025/1/15 6:59:48/

连接池

我们在实际开发中都会使用连接池,因为它可以减少我们获取连接所消耗的时间

mybatis中的连接池

  • mybatis连接池提供了3种方式的配置
    • 配置的位置
      • 主配置文件SqlMapConfig.xml中的dataSource标签,type属性就是表示采用何种连接池方式
    • type属性的取值
      • POOLED 采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现
      • UNPOOLED 采用传统的获取连接的方式,虽然也实现Javax.sql.DataSource接口,但是并没有使用池的思想
      • JNDI 采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到的DataSource是不一样的。
        • 注意:如果不是web或者maven的war工厂,是不能使用的、
        • 我们课程中使用的是tomcat服务器,采用连接池就是dbcp连接池

mybatis中的事务

  • 什么是事务
  • 事务的四大特性ACID
  • 不考虑隔离性会产生的3个问题
  • 解决办法:四种隔离级别
  • 它是通过sqlsession对象的commit方法和rollback方法实现事务的提交和回滚

mybatis中的多表查询

  • 表之间的关系
    • 一对多
    • 多对一
    • 一对一
    • 多对多
  • 举例
    • 用户和订单就是一对多
    • 订单和用户就是多对一
      • 一个用户可以下多个订单
      • 多个订单属于同一个用户
    • 人和身份证号就是一对一
      • 一个人只能有一个身份证号
      • 一个身份证号只能属于一个人
    • 老师和学生之间就是多对多
      • 一个学生可以被多个老师教
      • 一个老师可以教多个学生
  • 特例
    • 如果拿出每一个订单,它都只能属于一个用户
    • 所以mybatis就把多对一看成了一对一
  • mybatis中的多表查询
    • 示例:用户和账户
      • 一个用户可以有多个账户
      • 一个或多个账户属于一个用户
    • 步骤
      • 1.建立两张表:用户表、账户表
        • 让用户表和账户表之间具备一对多的关系:需要使用外键在账户表中添加
      • 2.建立两个实体类:用户实体类和账户实体类
        • 让用户和帐户的实体类能体现出一对多的关系
      • 3.建立两个配置文件
        • 用户的配置文件
        • 账户的配置文件
      • 4.实现配置
        • 当我们查询用户时,可以同时得到用户下所包含的账户信息
        • 当我们查询账户时,可以同时得到账户的所属用户信息
    • 示例:用户和角色
      • 一个用户可以有多个角色
      • 一个角色可以赋予多个用户
    • 步骤
      • 1.建立两张表:用户表、角色表
        • 让用户表和角色表之间具备多对多的关系:需要使用中间表,中间表中包含各自的主键,在中间表中是外键
      • 2.建立两个实体类:用户实体类和角色实体类
        • 让用户和角色的实体类能体现出多对多的关系
        • 各自包含对方一个集合引用
      • 3.建立两个配置文件
        • 用户的配置文件
        • 角色的配置文件
      • 4.实现配置
        • 当我们查询用户时,可以同时得到用户下所包含的角色信息
        • 当我们查询角色时,可以同时得到角色的所属用户信息

http://www.ppmy.cn/news/12426.html

相关文章

你是真的“C”——详解C语言数组模块知识

详解C语言数组模块知识😎前言🙌一维数组的创建和初始化🙌1.1 数组的创建💞1.2 数组的初始化💞1.3 一维数组的使用💞1.4 一维数组在内存中的存储💞二维数组的创建和初始化🙌1.1 二维数…

Java加解密(八)数字证书

目录数字证书1 定义2 证书组成结构3 公钥基础设施(PKI)3.1 PKI的组成3.2 PKI的相关标准3.3 信任模型4 证书的应用场景5 证书链6 生成证书6.1 通过CA生成可信证书6.1.1 国际权威认证机构6.1.2 生成CSR6.1.2.1 使用XCA生成CSR6.1.2.2 使用OpenSSL生成CSR6.…

用户登录、注册的简单案例: html+css+MyBatis+Servlet

用户登录一. 用户登录1. 流程与思路基本流程:详细过程:2. 准备环境建库建表Pojo实体类User:Maven坐标:mybatis核心配置文件:代理接口:3. 编写目录:HTML:Serlvet:4. 效果二…

《C++程序设计原理与实践》笔记 第10章 输入/输出流

在本章和下一章中,我们将介绍C标准库中用于处理来自各种源的输入和输出的功能:I/O流。本章关注基本模型:如何读写单个值,以及如何打开和读写整个文件。下一章将介绍具体细节。 10.1 输入和输出 如果没有数据,计算就毫…

Ai检测人员穿衣规范系统 opencv

Ai检测人员穿衣规范系统可以通过opencvyolo深度学习技术对现场画面中人员穿衣自动检测,发现现场人员未正确按要求穿衣进行抓拍留档。OpenCV可以在不同的系统平台上使用,包括Windows,Linux,OS,X,Android和iO…

Vue3商店后台管理系统设计文稿篇(四)

记录使用vscode构建Vue3商店后台管理系统,这是第四篇,主要记录使用git与vscode将代码同步提交到GitHub上面 文章目录一、Git与Github建立连接二、配置开发工具三、实用Git命令仓库相关命令分支相关命令正文内容: 一、Git与Github建立连接 使…

Windows10电脑重装系统详细步骤(纯净版)

目录 前言: 一、准备工作 二、下载pe工具 三、下载系统镜像ISO文件 获取方式一 获取方式二 获取方式三 四、进入pe系统 1.检查以上的准备工作是否完成 2.然后拔出来u盘插入要重装的电脑上面 3.然后按电源键开机(不能点击重启!&…

手把手教你使用Python实现推箱子小游戏(附完整源码)

文章目录项目介绍项目规则项目接口文档项目实现过程前置方法编写move核心方法编写项目收尾项目完善项目整体源码项目缺陷分析项目收获与反思项目介绍 我们这个项目是一个基于Python实现的推箱子小游戏,名叫Sokoban: 这个游戏的目的是让玩家&#xff0…