mybatis的开发流程
- pom.xml 配置好mysql- connector和mybatis
- mybatis.xml文件中创建好enviroment中的datasource,包括driver 数据库url以及用户名和密码
- 创建实体类,数据库字段名和类的属性名完全一致
- 创建映射器,xml文件,写sql语句,id,变量类型和返回值类型【实体类】
- 在mybatis.xml中注册好映射器xml文件
- 写启动器,创建sessionFactory,创建数据库会话,传入需要的参数并执行语句,关闭session
mybatis的缓存机制
两级缓存
一级缓存与sqlSession会话绑定,默认开启,一个sqlSession对应一个内存中的hashmap,生命周期跟当前绑定的sqlsession一样
第二次查询相同对象的时候从缓存中提取
二级缓存是应用全局缓存,所有的sqlSession共享,默认不开启,生命周期和sessionFactory一样。缓存命中率更高,占用内存更大,生命周期更长
可以在mapper.xml中进行配置,cache,配置size【对象数目】,超过数量的时候的清除策略【FIFO、LRU等】,清除的频率【60000,一分钟清理一次】,readOnly=true【这样的话多个会话所看到的缓存对象才一致】
在sql语句中添加属性,useCache是否使用二级缓存
另外,被二级缓存的对象的类需要实现serializable接口,需要被序列化
写操作时,缓存会被清除
spring springmvc springboot的区别
spring是所有应用的基础,提供了ioc和aop的特性
springmvc是spring的子项目用于提供web,替代传统的servlet,其中controller要被容器管理应用到了ioc,以及拦截器会运用到aop,进行功能扩展与控制
springboot是spring体系的敏捷开发框架,提高开发效率,扩展了很多实用功能和默认的模版,简化配置
springboot面试题
spring initializer 是创建项目的唯一方法吗?不是,基于maven手动创建也可以
springboot支持几种配置文件?yaml【层级】,properties文件【等式】
springboot的配置项?