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数据库驱动包
创建数据表
编写表对应的pojo
编写mapper.xml
然后编写测mybatis配置文件
添加配置log4j 配置文件
内容如下
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
然后编写测试类
获取 sqlsessionfactorybuilder 他类似一个工厂
然后获取一个数据库连接
执行
成功查询
下面编写mapper接口 注意要和mapper在同一个包下
对应的mapper方法
如果mapper没有添加对应的方法 也可以通过注解添加sql语句
@select
@delete
@update
@insert
编写接口过后就不用通过 mapper文件映射地址 增删改查了
通过 getmapper 动态加载接口
结果和刚刚一样
一级缓存是在 commit之前 二级缓存是在指定mapper 所有方法 二级缓存是要序列化到本地的
我们查看日志 只执行了一次查询
在commit之后
执行了两次 说明commit里面是要被缓存的
二级缓存是在整个mapper中全部方法 也就是sqlsession级别的 正常的开发模式我们都使用二级缓存 二级缓存和延迟加载开关都在 mybatis核心配置文件上面;
延迟加载就是你做对象映射的时候需要用到的对象才加载不需要的他不加载 是一个平面级别的;