title: Java框架note
toc: true
comments: true
abbrlink: a16861fc
date: 2021-08-01 15:52:27
tags: Java
categories:
这里记录的是对后端框架的学习 !
chpt01 MyBatis
SSM:Spring、SpringMVC、MyBatis
MyBatis: iBatis
> 持久化
1. IO
2. JDBC
3. ORM
> ORM: Object Relation Mapping,对象关系映射
类 :Student 表:xsb
属性:name 字段:name
age age
sex sex
对象 数据记录
> 使用mybatis的步骤:
1、导入 mybatis.jar 包
2、管理 mybatis.xml 配置文件
3、写 mapper.xml
4、java代码编写(获取session),进行CRUD操作
ps: mybatis 使用方式:
1. 纯xml方式
2. xml + 接口 的方式
3. 注解 + 接口 的方式
ps: 注解 + xml + 接口 方式
> mybatis 缓存
缓存:查询出来的数据被暂存在内存,以备后续查询使用。
一级缓存:session级缓存。
发生在同一个会话(sqlSession)里面的sql查询,如果后续的查询与第一次查询完全相同(SQL语句一样),则后续的查询会直接从缓存里面获取数据,而不是进行数据库查询。sqlSession一旦关闭,缓存数据便会被清空。
二级缓存:全局缓存(namespace级缓存)。
1. 全局缓存的作用域是针对Mapper的namespace而言的,也就是说只在有在当前namespace内的查询才能共享这个cache
2. 如果在sqlSession关闭之前处理加工过查询出来的数据,后续的查询获取的数据将是已经被加工处理过的。所以为了保证相同的查询,总能获取到原始的数据,sqlSession应在查询出原始数据后就立马关闭。
注意:一旦发生了增、删、改操作,数据库里面的数据就意味着已经改变,查询自然应重新进行,获取新的数据;所以,一旦发生了增、删、改操作,缓存数据便会被清空。
chpt02 Spring
SSM:Spring、SpringMVC、MyBatis
> Spring
。IOC/DI:控制反转容器/依赖注入
IOC: 创建管理维护java bean
1. XML注册java bean
<bean class="test.MyDao" id="myDao" />
DI:
a. setter 注入
<bean class="test.MyDao" id="myDao" />
<bean class="test.MyService" id="myService">
<property name="myDao" ref="myDao" />
</bean>
private MyDao myDao;
public void setMyDao(MyDao myDao) {
this.myDao = myDao;
}
b. 构造器注入
<bean class="test.MyDao" id="myDao" />
<bean class="test.MyService" id="myService">
<constructor-arg name="myDao" ref="myDao"/>
</bean>
private MyDao myDao;
public MyService(MyDao myDao) {
this.myDao = myDao;
}
2. 注解注册java bean
@Component
<context:component-scan />
DI:
@Autowired
。AOP
AOP: Aspect Oriented Programming , 面向切面(方面)编程
。横切任务(模式化的任务或可有可无的任务):事务控制、日志记录、异常处理
。通知:横切逻辑
。切入点:加入具体通知的地方
。切面 = 通知 + 切入点
OOP: Object Oriented Programming , 面向对象编程
。核心任务,必不可少的功能:CRUD
chpt03 SpringMVC
> SpringMVC
。核心:DispatcherServlet
1. url匹配
2. 参数的获取封装
3. 请求转发 & 重定向
4. Ajax数据响应
5. 文件上传