mybatis 使用 一级缓存二级缓存描述

mybatis 是非常简单的
MyBatis 支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。

导入mybatis的jar包 和log4j日志包 jdbc数据库驱动包

在这里插入图片描述
创建数据表
mybatis 使用 一级缓存二级缓存描述_第1张图片
编写表对应的pojo
mybatis 使用 一级缓存二级缓存描述_第2张图片
编写mapper.xml
mybatis 使用 一级缓存二级缓存描述_第3张图片
然后编写测mybatis配置文件
mybatis 使用 一级缓存二级缓存描述_第4张图片
添加配置log4j 配置文件
在这里插入图片描述
mybatis 使用 一级缓存二级缓存描述_第5张图片
内容如下
log4j.rootLogger=DEBUG, stdout
log4j.logger.com.thundersoft.mybatis.model=TRACE //\u6309\u7167\u5305\u6765\u6253log
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

然后编写测试类

mybatis 使用 一级缓存二级缓存描述_第6张图片
获取 sqlsessionfactorybuilder 他类似一个工厂
然后获取一个数据库连接
mybatis 使用 一级缓存二级缓存描述_第7张图片
执行
mybatis 使用 一级缓存二级缓存描述_第8张图片
成功查询

下面编写mapper接口 注意要和mapper在同一个包下

mybatis 使用 一级缓存二级缓存描述_第9张图片
对应的mapper方法

如果mapper没有添加对应的方法 也可以通过注解添加sql语句
@select
@delete
@update
@insert

编写接口过后就不用通过 mapper文件映射地址 增删改查了

mybatis 使用 一级缓存二级缓存描述_第10张图片
通过 getmapper 动态加载接口
结果和刚刚一样
mybatis 使用 一级缓存二级缓存描述_第11张图片
一级缓存是在 commit之前 二级缓存是在指定mapper 所有方法 二级缓存是要序列化到本地的
mybatis 使用 一级缓存二级缓存描述_第12张图片
我们查看日志 只执行了一次查询

mybatis 使用 一级缓存二级缓存描述_第13张图片
在commit之后
mybatis 使用 一级缓存二级缓存描述_第14张图片
执行了两次 说明commit里面是要被缓存的

mybatis 使用 一级缓存二级缓存描述_第15张图片

在这里插入图片描述

二级缓存是在整个mapper中全部方法 也就是sqlsession级别的 正常的开发模式我们都使用二级缓存 二级缓存和延迟加载开关都在 mybatis核心配置文件上面;

延迟加载就是你做对象映射的时候需要用到的对象才加载不需要的他不加载 是一个平面级别的;

你可能感兴趣的:(企业级开发类,技术类,mybatis)