04-MyBatis高级
2022/7/31 23:24:20
本文主要是介绍04-MyBatis高级,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、MyBatis多表查询
1.1、查询用户以及用户的扩展信息(一对一关联)
- 步骤1
- 步骤2
- 步骤3
- 步骤4
1.2、查询用户以及用户的多个订单信息(一对多关联)
- 步骤1
- 步骤2
- 步骤3
- 步骤4
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、查询所有用户
-
public interface UserMapper { // 1.查询所有用户 @Select(“SELECT * FROM user;") void selectAll(); }
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删除用户
-
public interface UserMapper { // 1.根据用户id删除用户 @Delete("DELETE FROM user WHERE id=#{uid};") void deleteById(int uid); }
3.5、小结
- 注解完成简单功能
- 配置文件完成复杂功能!
这篇关于04-MyBatis高级的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南