文章目录
mybatis框架详解(配置、动态标签、高级映射、延迟加载、一二级缓存、事务、初始化等)
mybatis是什么
MyBatis是一款开源的数据持久层框架,支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
主要完成两件事情:
- 封装JDBC操作
- 利用反射打通java类与sql语句之间的转换
mybatis原理
深入理解mybatis事务管理机制
mybatis数据源与连接池
mybatis初始化机制
mybatis.xml配置
动态标签
常用动态标签大全
动态sql
Mybatis批量插入demo
{}与${}区别
高级映射
延迟加载(按需加载)
缓存
一级缓存若控制在sqlsession级别,在修改后容易引起脏读。二级缓存是全局的,是namespace级别,但是限于单表操作,如果关联表的话,引起脏读,使用cake-ref配置能解决脏读问题,但是此时使用二级缓存的意义就不大了。当开启缓存机制数据操作流程是:二级缓存——一级缓存——数据库
缓存机制的实现原理
一、二级缓存
一、二级缓存
Mybatis的一级二级缓存
深入理解一级缓存
深入理解二级缓存
扩展琐碎知识
源码角度聊JDBC和数据库
mybatis琐碎知识
锁和同步关键字的区别
MyBatis配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 加载外部的资源文件 -->
<properties resource="jdbc.properties"></properties>
<!-- 定义一些别名 -->
<typeAliases>
<typeAlias type="sdibt.group.entity.Book" alias="book"/>
</typeAliases>
<!-- 声明数据连接环境 -->
<environments default="development">
<!-- JDBC数据源 -->
<environment id="development">
<!-- 事物 -->
<transactionManager type="JDBC" />
<!-- 数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${mysql.driverClass}" />
<property name="url" value="${mysql.jdbcUrl}" />
<property name="username" value="${mysql.user}" />
<property name="password" value="${mysql.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 映射文件<mapper resource="cn/cache/cache.xml"/> -->
<mapper resource="sdibt/group/entity/Book.xml" />
</mappers>
</configuration>