zoukankan      html  css  js  c++  java
  • SpringBoot整合MyBatis和Redis思路(四)

    一.SpringBoot整合MyBatis
    步骤如下
    1.搭建环境
    1)数据准备,建库建表;
    2)用Spring Initializr创建项目,并添加依赖(Mysql/MyBatis/mysql驱动包);
    3)根据数据库的表建对应的实体类。数据库中表的字段名与实体类的属性名最好一致,否则无法映射过来,
    当然也可在全局配置文件中进行相关配置;
    4)编写配置:
    I)在application.properties编写mysql数据库连接配置。
    II)添加数据源,数据源的作用是处理一些增删改查的sql语句。
    III)由于不被识别SpringBoot直接识别,所以要添加配置文件来读取Druid数据源,即将
    该配置文件中Druid属性值注入到DataSource类对象中。
    2.开始整合,整合方式有两种:注解方式和配置文件方式
    法1:用注解方式整合
    I)写接口文件,对于一些常用的方法进行抽象出来放到接口中,并在抽象方法上添加具体的sql实现。
    II)并在启动类上添加@MapperScanner("xxx")扫描包路径。
    III)写测试类。即写@RunWith(SpringRunner.class)开启测试运行器、 @SpringBootTest加
    载上下文,然后将要测试的类的对象注入到当前类,并调用注解的、后面的具体的sql实现。
    法2:用配置文件整合
    I)写接口文件,对于一些常用的方法进行抽象出来放到接口中。
    II)写映射文件,其中namespace为接口的引用名,右键点击copy reference即可,另外,sql实
    现的id名必须调用的方法名一致。
    III)在全局配置文件中指定MyBatis的映射文件的路径和实体类的别名。
    IV)写测试类。步骤同上。
    ---------------------------------------------------------------------------------------------------
    二.SpringBoot整合Redis
    步骤如下
    1) 添加Spring Data Redis依赖启动器;
    2)编写实体类; 其中类上加的@RedisHash("xxx")指定操作实体类对象在Redis数据库中的存储空间名字,对@Id指定
    的是实体类的主键会在对应的数据库中生成对应的id,用@Indexed标识二级索引字段方便查询。
    3)编写接口; 可继承CrudRespository接口来写一个自定义接口,并在中添加所需要的抽象方法。
    4)进行连接配置; 在全局配置文件下添加Redis数据库连接配置,指定Redis服务器地址、连接端口、密码等;
    5)测试; 同一般测试一样,@RunWith(SpringRunner.class)、@SpringBootTest等注解加载上下文环境
    并运行测试环境,并注入要测试的类对象,并往里面赋值(同面向对象的形式),最后调用方法输出结
    果。

    说明:最好参考如下步骤总结的,更为通用和详细,当然也可与上面结合起来看和练习,但上面这种是用于JPA框架来作为数据连接和
    处理的。
    有两种方式,一种是基于注解的,一种是基于api的。
    步骤如下
    1.首先准备数据,用Spring Initializr创建项目,选择相关依赖或在pom中配置相关依赖,
    在访问连接配置之前要在终端输入redis-server命令开启redis缓存,在全局配置文件中写
    访问连接配置,如Redis服务主机ip地址、端口、密码、缓存有效期。
    2.实体类创建,过程中除了set/get/toString方法,还要实现序列化接口,否则缓存刷新有
    异常。
    3.写Repository接口及SQL实现;
    4.写业务层
    注解方式:
    首先用@Service注解注入到Spring容器中,将Repository接口的实例注入当
    前类的对象。对于方法的增删改查,常将@Cacheable、@CachePut、@CacheEvict等注解放
    到方法上,其中@Cacheable一般对查询结果进行缓存存储,先进行缓存查询,如果为空则进行
    方法查询,并将结果进行缓存,若缓存已有数据,则不进行方法查询,而是直接用缓存数据;而
    @CachePut是缓存的更新,一般放到数据更新业务的方法上;@CacheEvict常用于数据的删除
    操作,其作用是先进行业务数据的删除,然后再清除缓存。

    API方式:
    对于API方式,主要是将上面的注解改为用RedisTemplate模板来实现,代码相对多一点,
    但更加灵活,且易于控制。其中查询数据首先是用redisTemplate.opsForValue().get()
    获取对象,如果没有获取到就用set方法,设置redisTemplate.opsForValue().set(),另
    外这个xxx.set也可用于缓存数据更新,而删除的话一般用于数据查询之后,再进行缓存删除,
    方法为redisTemplate.delete();

    5.写控制层逻辑
    调用Service方法和数据,主要是路径映射需要用@PathVariable和另外,对于方法或类
    上需要用@RequestMapping("/"),当然方法上也可用@GetMapping来映射。
    6.写测试类,运行启动类,开始测试。
    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    keepass口令管理实践
    openssl实践
    Nmap
    SSH
    Wireshark 实践
    网站设计
    python database
    python gui
    Excel数据统计与分析
    2020-2021学期20202401金丁《网络空间安全专业导论》第十三周自学总结
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/12258646.html
Copyright © 2011-2022 走看看