本文主要是介绍04-MyBatis高级,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、MyBatis多表查询
1.1、查询用户以及用户的扩展信息(一对一关联)
1.2、查询用户以及用户的多个订单信息(一对多关联)
1.3、多对多关联
- 多对多关联相当于两个一对多关联;只不过实现起来步骤有点繁杂,原理并不难懂
2、MyBatis缓存
2.1、MyBatis缓存概念
- 每次执行相同的语句都是去数据库中查询,存在效率问题
- MyBatis框架提供了缓存策略,通过缓存策略可以减少查询数据库的次数,提升系统性能
- 在MyBatis框架中缓存分为一级缓存和二级缓存
- 一般来说缓存在内存中
2.2、MyBatis一级缓存
- 一级缓存是sqlSession范围的缓存,只能在同一个sqlSession内部有效。它本身已经存在,一级缓存不需要手动处理,可以直接使用
- 第一次查询数据的时候,会将查询的数据放入一级缓存中。后面相同的查询会直接从缓存中获取
- 一级缓存是sqlSession范围的缓存,并且当调用sqlSession的修改、添加、删除、提交、关闭等方法时,一级缓存会被清空
2.3、MyBatis二级缓存
- 概念
- 二级缓存是mapper映射级别缓存,作用范围跨越SqlSession,可以在多个SqlSession之间共享二级缓存数据
- 二级缓存关键点
- 1.实体类需要实现Serializable接口
- 2.至少要准备2个以上SqlSession,在进行测试
- 实现
- 结果分析
3、MyBatis注解开发
3.1、查询所有用户
3.2、添加用户
-
public interface UserMapper {
// 3.添加新的用户
@Insert("INSERT INTO user VALUES (NULL, #{username}, #{birthday}, #{sex}, #{address});")
void add(User user);
}
3.3、根据用户id修改用户
-
public interface UserMapper {
// 2.根据用户id修改用户
@Update("UPDATE user SET username=#{username}, birthday=#{birthday}, sex=#{sex}, address=#{address} WHERE id=#{id};")
void update(User user);
}
3.4、根据用户id删除用户
3.5、小结
这篇关于04-MyBatis高级的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!