连接池
我们在实际开发中都会使用连接池,因为它可以减少我们获取连接所消耗的时间
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.建立两张表:用户表、账户表
- 示例:用户和角色
- 一个用户可以有多个角色
- 一个角色可以赋予多个用户
- 步骤
- 1.建立两张表:用户表、角色表
- 让用户表和角色表之间具备多对多的关系:需要使用中间表,中间表中包含各自的主键,在中间表中是外键
- 2.建立两个实体类:用户实体类和角色实体类
- 让用户和角色的实体类能体现出多对多的关系
- 各自包含对方一个集合引用
- 3.建立两个配置文件
- 用户的配置文件
- 角色的配置文件
- 4.实现配置
- 当我们查询用户时,可以同时得到用户下所包含的角色信息
- 当我们查询角色时,可以同时得到角色的所属用户信息
- 1.建立两张表:用户表、角色表
- 示例:用户和账户