1.mybatis
(1) 认识mybatis : 持久化
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集。MyBatis 使用简单的 XML 或注解来配置和映射基本体,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录(自我总结就是 jdbc的升级版)
(2)CRUD
Create(增加),Retrieve(查询),Update(改),Delete(删除)
(3)配置
Session :session是服务器端对象,保存在服务器端!!!
Servlet: 接收客户端的请求,专门接收客户端的请求数据,然后调用底层service处理数据并生成结果浏览器http请求------》tomcat服务器-------》到达servlet-----》执行doget,dopost方法----》返回数据(任何带有servlet的对象都是servlet的子对象)
Filter:乱码过滤,可能会因为post或者get请求产生的不同乱码,或者tomcat版本问题产生的问题
(4)ResultMap :结果集映射--->>一对多或者多对一
- 通过JDBC查询得到ResultSet对象
- 遍历ResultSet对象并将每行数据暂存到HashMap实例中,以结果集的字段名或字段别名为键,以字段值为值
- 根据ResultMap标签的type属性通过反射实例化领域模型
- 根据ResultMap标签的type属性和id、result等标签信息将HashMap中的键值对,填充到领域模型实例中并返
(5)注解开发:简洁了太多
(6)动态sql:避免了很多问题,因为一下标签(红色为现今常用)
- if
- choose(when otherwise)
- trim(set where)
- foreach
(7)缓存:session也是缓存的一种,还有Redis
有客户端的Cookie,
有服务器端的Session和Application。
其中Cookie是保存在客户端的一组数据,主要用来保存用户名等个人信息。Session则保存对话信息。Application则是保存在整个应用程序范围内的信息,相当于全局变量。通常使用最频繁的是Session,缓存也是有限的,会自动清除之前的旧数据。其中redis的读取速度最快,并且是在内存中进行读取,当内存不够时可以扩大内存,还有就是 .net提供的Cache缓存.
2.Spring
(1)IOC:控制反转,获得依赖对象的方式反转了
(2)自动装配:使用Spring 满足bean依赖的一种方法
- 在XML中显示配置
- 在java中显示配置
- 隐式的bean发现机制和自动装配bean(这就是自动装配的概述)
组件扫描(component scanning) spring会 自动发现应用上下文所创建的bean
自动装配(autowiring)spring自动满足bean之间的依赖。也就是说的IOC/DI
--自动装配方式优两种:byName byType
按名称和按类型自动装配
(3)AOP:面向切面编程
在Spring中的作用,提供声明式事务,允许用户自定义切面
- 切面.他是一个类
- 同事.他是类中的一个方法,指他要要完成的事务
- 目标.被通知的对象
- 代理.通知后创建的对象
- 切入点.执行事务的点
- 连接点.与切入点配合的执行点
(4)DI:依赖注入
又上述可以想到,实现控制反转的是IOC容器,实现方法是依赖注入
(5)代理模式:Proxy 实现业务分工
静态代理模式
动态代理模式
一个动态代理,一般代理某一业务,
一个动态代理可以代理多个类,代理得是接口
(6)注解开发
(7)javaConfig:java代码+注解来替代原来的xml+注解的配置方式
//config使用的注解
@Configuration
//导bao 注解
@import
//扫描包的注解
@ComponentScan(8)整合mybatis:连接数据库,写出增删改
(9)声明事物:分为编程式事务管理和声明式事务管理
3.Spring MVC
(1)spring mvc执行流程
mvc一种架构模式
- model(模型):业务逻辑 保存数据的状态
- view(视图):显示页面
- Controller(控制层):取得表单数据 调用业务逻辑 转向指定页面
- 用户发送请求
- Servlet接受请求数据,并调用相应的逻辑方法
- 业务处理完成便返回数据给servlet
- servlet转向JSP,有jsp渲染页面
(2)配置
(3)重定向与转发
(4)数据如何处理
(5)乱码问题
(6)Controller:可以直面的感觉到注解的方便
@Controller
@RestController与@RestMapping一起使用(7)RestFull:是一种风格,更简洁,层次突出
传统风格或者说是传统方式操作资源
http://127.0.0.1/item/queryItem.action?id=1 查询,GETRestFull 风格
http://127.0.0.1/item/1 查询,GET
感觉看个人,传统的比较直观并且表达更直白RestFull更简洁,简单
(8)JSON:前后端分离(ajax) :
















