Mybatis注解开发
//利用注解可以根据返回值类型,自动映射 //
规则1: 注解和映射文件 二选一 映射文件为主导. //
规则2: 注解写法一般适用于简单操作.关联查询不适用
1.2 Mybatis 缓存讲解
1.2.1 缓存说明
说明: 如果相同的数据需要多次查询,则可以使用缓存的方式处理,提高用户的响应速度.
1.2.2 mybatis缓存说明
mybatis中提供了2种缓存的机制.
一级缓存: SqlSession级别 在同一个sqlSession内实现数据的共享 默认开启
二级缓存: SqlSessionFactory级别 由同一个sqlSessionFactory,生产的SqlSession 数据共享. 默认开启 + 配置
1.2.3 一级缓存测试
说明: SpringBoot在使用一二级缓存时,有特殊要求 需要额外注意.
/*测试mybatis的一级二级缓存
* 现象: 如果采用springBoot的方式进行测试时发现,sql执行多次. 一级缓存无效.
* 原因: springBoot整合mybatis之后,使用Mapper.find查询时.springBoot默认会开启
* 多个sqlSession
* 解决方案: 添加事务注解
@Transactional //控制事务
* 知识讲解: springBoot中如果添加了事务注解,则默认采用同一个SqlSession
1.3 二级缓存测试
1.3.1 测试策略
说明: 为了构建多个mapper对象.需要准备多个线程进行测试. 可以通过浏览器让用户发起多次请求.之后测试二级缓存是否有效.
层级代码结构:
1. Controller 层 SpringMVC 面向接口编程 2:2:1
2. Service 层 Spring
3. Mapper/Dao层 Mybatis
1.4 注解使用二级缓存
业务说明: Mybatis中采用注解方式的查询和xml映射文件的查询的方式不一样. 两者不可以混用.
使用注解的二级缓存:
总结说明: 注解缓存写法与映射文件写法冲突.所以一般二选一即可.
2 前后端项目搭建
2.1 项目调用流程图
目录结构说明:
1.assets 引入第三方js/css
2.components 组件定义的目录 组件: 将html/css/js统一封装到一起,可以提高前端代码的扩展性.
3. plugins 引入elementUI.js的文件
4. router 代表路由
5. App.vue 代表整个项目的根组件
6. main.js 项目中核心JS文件
- 定义共同 的请求前缀
-
/* 设定axios的请求根目录 */ axios.defaults.baseURL = 'http://localhost:8091/'
- 父子组件之间参数传递
-
/* 向vue对象中添加全局对象 以后发送ajax请求使用$http对象 */ /* 父组件将参数传递给子组件 需要声明 prototype.key= xxx */ Vue.prototype.$http = axios
3.3 创建SysResult对象
说明: 前端与后端进行业务交互.需要有一个统一的返回数据的结构,而这种负责前后端交互的媒介.称之为vo对象.