ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

04-MyBatis高级

2022-07-31 15:33:02  阅读:168  来源: 互联网

标签:缓存 04 步骤 高级 用户 MyBatis 查询 id


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,查询,id
来源: https://www.cnblogs.com/OnlyOnYourself-lzw/p/16537214.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有