SSM-Mybatis学习记录(三)

一、mybatis中的连接池以及事物控制

1.连接池:

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

在这里插入图片描述

2.mybatis中连接池使用及分析
mybatis连接池提供了三种方式的配置
	 配置的位置
	 	主配置文件SqlMApConfig.xml中的dataSource标签,type属性就是表示采用何种连接池方式。
	 	
type属性的取值:
 - POOLED				
采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现。
   	 				
 - UNPOOLED		
 采用传统的获取连接的方式,虽然也实现了javax.sql.DataSource接口,但是没有使用池的思想。

 - JNDI					
采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到的DataSource是不一样的。
注意:如果不说web或者maven的war工程,是不能使用的。
3.mybatis事物控制的分析

什么是事务

		指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。
简单的说,事务就是并发控制的单位,是用户定义的一个操作序列。

事物的四大特性ACID

A:原子性(Atomicity)
    事务中的操作要么都不做,要么就全做。
C:一致性(Consistency)
    事务执行的结果必须是从数据库从一个一致性状态转换到另一个一致性状态。
I:隔离性(Isolation)
    一个事务的执行不能被其他事务干扰
D:持久性(Durability)
    一个事务一旦提交,它对数据库中数据的改变就应该是永久性的

不考虑隔离性会产生的3个问题

1、脏读

2、不可重复读

3、幻读(虚读

解决办法:四种隔离级别(此处可百度)

1、Read Uncommited(读取未提交内容)

2、Read Commited(读取提交内容)

3、Repeatable Read(重复读)

4、Serializable(可串行化)

二、mybatis基于xml配置的动态sql语句使用

mappers配置文件中的几个标签

if

当if标签的test成立时,就把if标签中的内容,拼接到上边的sql语句的后边

where

用于"多条件不确定"查询时,确定在拼接sql语句时,是否把"and"关键字给替换	为"where"
使用where标签时,第一个if标签中的sql语句,可以省略and关键字

foreach

当需要遍历"传入参数",并拼接sql语句时. //特别是类似于 id in (1,2,)  之类的内容 			

sql
在这里插入图片描述
在这里插入图片描述

三、mybatis中的多表操作 掌握应用

一对多,多对一

在这里插入图片描述

多对多

在这里插入图片描述

工程结构图
在这里插入图片描述
role对应多个user
在这里插入图片描述
IRoleDao.xml文件中resultMap以及sql语句的编写
在这里插入图片描述
user对应多个role
在这里插入图片描述
IUserDao.xml文件中resultMap以及sql语句的编写
在这里插入图片描述

四、总结

随便写写,主要是记录一天中所学的东西,可能只有自己看得懂。不管了,明天继续加油😁!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值