事务 4个ACID
原子性,多个sql处于同一个事务里,要么全成功,要么全失败
一致性,保证数据在不同电脑上是一致的
隔离性,数据库支持并发访问,保证事务间是隔离的,互不影响
持久性,对数据库的操作是永久的
隔离级别
读未提交:性能最好,安全性最差
读提交:Oracle的默认级别-性能较好,安全性较差
可重复读:mysql的默认级别,性能较差,安全性较好
串行化:安全性最高,但是表级的锁,效率低
索引
好处:给添加完的列,提高查询效率
坏处:索引本质上就是一张表,如果标的体积大 比较占内存 主键本身就有索引
分类
单值索引(一个索引质包含一个列)
复合索引(--包含着多个列)
唯一索引(一个索引只包含一个列,但是要求列的值不能相同)
$和#的区别
都可以接收参数,$接收参数只获取值本身不会自动添加单引号,而#可以完成
$底层使用的是Statement低效不安全,而#使用的是PrepareStatement既高效又安全,所以一般使用的都是#
mybits一级缓存和二级缓存
一个缓存是用同一个会话查询同一个sql语句
第一次已经查询出来放在缓存中,下次再执行时就从缓存中拿,高效
用接口开发 可以松耦合,提高代码的复用性
idea坐标
1.公司域名倒着写
2.项目名称不能重复
3.版本号1.2.3 改项目改1 2在中间 修改bug改3
坐标的意义
1.主要用来管理和区分项目
2.项目的打包路径就是坐标的位置
idea中pom.xml中的parent标签/作用,原则定位:SpringBoot主要作用整合SSM,
使得框架更加简化
原则:"开箱即用"
作用
1.SpringBoot在内部兼容了当下几乎所有的第三方框架
2.SpringBoot官网已经将所欲兼容的版本进行了定义(几乎解决了版本冲突的问题),
以后几乎不需要写版本号
概括:parent表变中管理其他项目的版本信息
lombok面试问题
lombok的使用需要在idea中提前安装插件!如果项目在linux系统中部署发布.是否需要安装插件?
答案:不要
原因:lombok插件编译期有效(编译期:由xxx.java文件编译为xx.class文件),在项目打包前class文件
已经包含了set,get等方法,所以项目打包后可以直接运行,无需安装插件
SpringBoot整合Mybatis流程
1.三个依赖jar包 spring的mybatis包/数据库驱动/JDBC
2.编辑application.yml文件 配置数据源/配置整合Mybatis
3.编辑Mybatis.xml
4.通过@MapperScan为接口创建代理对象
json是一种轻量级的数据交换格式,方便机器进行解析和生成
json格式
Object格式:无序 以左括号{开始,}结束,每个名称后面加一个冒号,名称:值之间用,分割
{"id":100,"name":"tomcat","age":18}
数组Array格式:是指(value)的有序集合
[10,"张三","李四"]
嵌套结构:值(value)可以是String\number\true\false\null\Object\array
模板字符串
语法:反引号
特点:1.被反引号包裹的都是字符串,可以随意换行,可以保留代码结构
可以动态的从对象中获取数据 语法:${对象.属性}
async: true //默认为true 异步 false同步调用
同源策略
请求的协议,域名,端口号
JSONP可用于解决主流浏览器的跨域数据访问问题
核心:利用<script src属性="获取远程服务器数据">
跨域资源共享(CORS)
通过HTTP(响应头)信息标识哪些网址可以访问浏览器,现在所有浏览器默认支持CORS,
在请求之前会进行"预检",如果预检成功,则在(30分钟)无需检验