框架

75 阅读6分钟

事务

212.什么是事务?

事务是一系列对数据库的操作,这些操作要么全部执行,要么全都执行

213.解释事务的ACID?

A:atomicity 原子性 事务要么全部执行,要么全不执行 C:consistency 一致性 数据库的状态要保持一致性。比如转账,a转账给b,a的钱少了,对应的b的钱要多,总的钱不变 I:isolation 隔离性 不同的事务并发运行时,不会互相产生影响 D:durability 持久性 事务执行成功后,对数据库的改变是永久性的,即使发生了故障。数据库通过事务日志来实现此功能,事务日志记录了所有已提交的事务,这个日志会被持久化到磁盘中

214.MySQL的隔离级别?默认是的哪个?

1.读未提交 2.读已提交 3.可重复读 4.串行化

mysql默认的事务隔离级别是可重复读

215.什么是脏读、不可重复读、幻读?

脏读:开启两个事务分别为事务1和事务2,此时事务1读取数据a的值为1,然后事务2修改a的值为2,并且事务2未提交,此时事务1再去读数据啊的值,读出的值为2。 不可重复读:开启两个事务分别为事务1和事务2,此时事务1读取数据a的值为1,然后事务2修改a的值为2,并且事务2提交了事务。此时事务1再去读数据a读出的值则为2. 幻读:数据库中有一个学生表有五条数据。开启两个事务,事务1访问学生表读出5条数据,事务2向学生表插入一条数据,此时事务1访问学士表会读出6条信息

216.什么是MVCC?

217.MySQL的引擎有哪些?各自特点?

InnoDB和MyISAM 区别:并发和索引 MyISAM的特点:只支持表级别的锁,并发时效率低。MyISAM不支持事务。MyISAM的索引结构是B+树,但是MyISAM的数据文件和索引文件是分离的,也就是说MyISAM的主键索引也是聚非簇索引 InnoDB的特点:支持行级别的锁(默认行级别的锁),并发效率高。InnoDB的锁粒度低,为了避免并发时出错,支持事务,并定义了四种隔离级别。InnoDB的索引结构也是B+树,但是InnoDB的数据和索引放在通过一个文件,也就是说InnoDB的主键索引时聚簇索引

索引

218.什么是索引?

索引是数据结构。作用是加快搜索。MyISAM和InnoDB存储引擎都是通过B+树实现的索引

219.常见的索引有哪些?

主键索引 普通索引、唯一索引、联合索引

220.主键索引和唯一索引有哪些特点?

221.什么是联合索引? 222.什么是最左前缀原则? 223.聚集(聚簇)索引和非聚集(非聚簇)索引的区别? 数据库优化 224.如何优化一个SQL语句? 225.如何分库分表? JavaEE Servlet 226.Servlet生命周期方法? 227.Servlet对象何时创建? 228.Servlet的配置方式有哪些? 229.HTTPServlet类如何使用? 230.Request和Response对象的作用? 231.Get和Post的区别? 232.Session和cookie的区别? 233.什么是Token? JSP 234.九大内置对象有哪些?各自作用? 235.四大作用域有哪些? 236.EL表达式和JSTL运行在哪里?浏览器还是服务器? 237.JSP的运行过程? SSM Spring 238.Spring的作用? 239.什么是AOP? 240.AOP底层是基于什么实现的? 241.动态代理的实现方式有哪些? 242.AOP应用场景有哪些? 243.Spring AOP 的通知有哪些类型? 244.Spring事务的传播机制?

245.什么是IoC?

Spring IOC是inversion of control,spring ioc 是一种思想。 将创建对象的权力交给外部环境,也就是容器。

246.什么是DI?

DI是dependency injection。 依赖注入是应用程序依赖于容器来注入实例对象。也就是说应用程序所需的对象找容器来获取。

247.Spring Bean对象的作用域有哪些? 248.Spring如何解决循环依赖? 249.属性注入/依赖注入的方式有哪些? 250.Spring如何处理事务? SpringMVC 251.SpringMVC运行过程?

①用户发送请求到DispatcherServlet前端控制器。 ②DispatcherServlet前端控制器调用HandlerMapping处理器映射器。HandlerMapping处理器映射器根据URL返回handler链 ③DispatcherServlet前端控制器调用HandlerAdaptor处理器适配器,处理器适配器调用Handler处理器,处理对应的业务逻辑,返回一个ModelAndView对象,HandlerAdaptor处理器适配器将ModelAndView对象再返回给前端控制器 ④前端控制器将ModelAndView发送给ViewResResolver视图解析器,视图解析器解析ModelAndView后会返回具体的视图View给前端控制器 ⑤前端控制器对视图进行渲染,解析完成后响应给用户

252.什么是拦截器? 253.过滤器和拦截器的区别?

MyBatis

254.什么是ORM?

ORM是object relational mapping。 作用是将java中的对象与关系型数据库中的数据表进行映射,通过这种方式使开发人员操作数据库的时候可以更方便。比如使用JDBC时,程序员需要自己利用反射和注解来将从数据库中获取到的数据(存储在resultset对象内)转化为相应的对象,增加代码书写。

255.MyBatis的缓存?

MyBatis缓存的作用就是减少访问数据库,提高效率。

mybatis的一级缓存是sqlsession级别的缓存。作用原理是mybatis会将执行的方法和参数通过算法形成一个key值,将结果形成一个value,这对key-value键值对会存储到map中。之后若执行的方法和参数已经存在map中,则直接从map中获取结果,不再去查询数据库。

mabatis的二级缓存是mapper级别的缓存。每一个namespace对应一个二级缓存,属于这个namespace的sqlsession可以都访问这个二级缓存。

256.MyBatis的二级缓存如何打开? 257.二级缓存的对象要实现什么接口? 258.二级缓存的清理方式有哪些? 259.MyBatis的懒加载? 260.动态SQL有哪些?它们的各自的作用? 261.MyBatis中如何进行一对一,一对多映射? 262.ResultMap作用是什么? 263.#{}和${}的区别? 264.MyBatis如何实现分页? SpringBoot 265.SpringBoot启动机制? 266.如何理解约定优于配置? 267.SpringBoot项目中常用注解有哪些? 268.@Autowired和@Resource的区别? 269.@Controller和@RestController的区别? 270.@RequestBody和@ResponseBody作用? 271.@RequestMapping修饰类和方法的作用? 272.@PathVariable的作用? 273.使用过哪些权限管理的框架? 274.什么是RBAC?