mybatis 注解开发
@Insert:实现新增
@Update:实现更新
@Delete:实现删除
@Select:实现查询
@Result:实现结果集封装
@Results:可以与@Result 一起使用,封装多个结果集
@ResultMap:实现引用@Results 定义的封装
@One:实现一对一结果集封装
@Many:实现一对多结果集封装
@SelectProvider: 实现动态 SQL 映射
@CacheNamespace:实现注解二级缓存的使用
使用注解进行单表 CRU
// 使用注解进行单表 CRUD
// 编写测试类
![v2-e3eae8291e3b956bad5ac2482423b671_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=293ee0dd-e72f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-e3eae8291e3b956bad5ac2482423b671_b.jpg)
如果实体类属性名和数据库字段名不一致,需要加 Results
@Results(id="userMap",value={
@Result(id=true,column = "id",property = "userId"),
@Result(column = "username",property = "userName"),
@Result(column = "address",property = "userAddress"),
@Result(column = "sex",property = "userSex"),
@Result(column = "birthday",property = "userBirthday")
})
@Select("select * from user")
List<User> findAll();
@Select("select * from user where id=#{id} ")
@ResultMap("userMap")
User findById(Integer userId);
![v2-5986e79110dd901f7468b1ff5a3ce149_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=293ee0dd-e72f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-5986e79110dd901f7468b1ff5a3ce149_b.jpg)
注解多表 多对一(一对一)查询
在Account实体类中加User属性
//多对一(mybatis中称之为一对一)的映射:一个账户只能属于一个用户
编写AccountDao
主要是Results注解和One注解
public
编写Account测试类
public
![v2-6c5b9d34e57b740f4942861bf7c5918b_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=293ee0dd-e72f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-6c5b9d34e57b740f4942861bf7c5918b_b.jpg)
注解多表一对多查询
在User实体类中加Account属性
//一对多关系映射:一个用户对应多个账户
在UserDao中加方法
/**
编写User测试类
/**
![v2-e0447e2473e79160a1f1f7f6d3eafe2f_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=293ee0dd-e72f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-e0447e2473e79160a1f1f7f6d3eafe2f_b.jpg)
缓存
对于一级缓存,mybatis是默认开启的
@Test
![v2-18dae13eafecc7e588039b4934b294b4_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=293ee0dd-e72f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-18dae13eafecc7e588039b4934b294b4_b.jpg)
二级缓存需要手动开启
先设置mybatis主配置文件
<!--开启二级缓存-->
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
然后在需要开启二级缓存的dao类前加注解
// 开启二级缓存
然后测试一下
/**
![v2-dda3d420bce54b1443238e9165204024_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=293ee0dd-e72f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-dda3d420bce54b1443238e9165204024_b.jpg)