这几年来注解开发越来越流行,Mybatis 也可以使用注解开发方式,这样我们就可以减少编写 Mapper 映射 文件了。本次我们先围绕一些基本的 CRUD 来学习,再学习复杂映射关系及延迟加载。
3.1 mybatis 的常用注解说明
@Insert
3.2 使用 Mybatis 注解实现基本 CRUD
单表的 CRUD 操作是最基本的操作,前面我们的学习都是基于 Mybaits 的映射文件来实现的。
3.2.1 编写实体类
package
注意: 此处我们故意和数据库表的列名不一致。
3.2.2 使用注解方式开发持久层接口
3.2.2 使用注解方式开发持久层接口
完整的DAO类
public
3.2.3 编写 SqlMapConfig 配置文件
<?xml version="1.0" encoding="UTF-8"?>
3.2.4 编写测试方法
@Test
3.3 使用注解实现复杂关系映射开发
实现复杂关系映射之前我们可以在映射文件中通过配置<resultMap>来实现,在使用注解开发时我们需要借 助@Results 注解,@Result 注解,@One 注解,@Many 注解。
3.3.1 复杂关系映射的注解说明
@
3.3.2 使用注解实现一对一复杂关系映射及延迟加载
需求: 加载账户信息时并且加载该账户的用户信息,根据情况可实现延迟加载。(注解方式实现)
3.3.2.1 添加 User 实体类及 Account 实体类
public
public
3.3.2.2 添加账户的持久层接口并使用注解配置
public
3.3.2.3 添加用户的持久层接口并使用注解配置
@CacheNamespace
3.3.2.4 测试一对一关联及延迟加载
@Test
3.3.3 使用注解实现一对多复杂关系映射
需求: 查询用户信息时,也要查询他的账户列表。使用注解方式实现。 分析: 一个用户具有多个账户信息,所以形成了用户(User)与账户(Account)之间的一对多关系。
3.3.3.1 User 实体类加入 List<Account>
//一对多关系映射:一个用户对应多个账户
3.3.3.2 编写用户的持久层接口并使用注解配置
@CacheNamespace
@Many
3.3.3.3 编写账户的持久层接口并使用注解配置
/**
3.3.3.4 添加测试方法
/**
3.4 mybatis 基于注解的二级缓存
3.4.1 在 SqlMapConfig 中开启二级缓存支持
<!-- 配置二级缓存 -->
3.4.2 在持久层接口中使用注解配置二级缓存