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、小结
- 注解完成简单功能
- 配置文件完成复杂功能!
原创文章,作者:dweifng,如若转载,请注明出处:https://blog.ytso.com/278061.html