当前位置: 首页 > news >正文

spring boot 整合redis

1.在pom文件中添加spring-boot-starter-data-redis依赖启动器

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2.编写三个实体类

Person类

@RedisHash("persons")  // 指定操作实体类对象在Redis数据库中的存储空间
public class Person {@Id// 标识实体类主键private String id;// 标识对应属性在Redis数据库中生成二级索引,索引名就是属性名,可以方便地进行数据条件查询@Indexedprivate String firstname;@Indexedprivate String lastname;private Address address;private List<FamilyMember> familyMemberList;public Person() {    }public Person(String firstname, String lastname) {this.firstname = firstname;this.lastname = lastname;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getFirstname() {return firstname;}public void setFirstname(String firstname) {this.firstname = firstname;}public String getLastname() {return lastname;}public void setLastname(String lastname) {this.lastname = lastname;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}public List<FamilyMember> getFamilyMemberList() {return familyMemberList;}public void setFamilyMemberList(List<FamilyMember> familyMemberList) {this.familyMemberList = familyMemberList;}@Overridepublic String toString() {return "Person{" +"id='" + id + '\'' +", firstname='" + firstname + '\'' +", lastname='" + lastname + '\'' +", address=" + address +", familyMemberList=" + familyMemberList +'}';}
}

 Address 地址类

public class Address {@Indexedprivate String city;@Indexedprivate String country;public Address() {}/**** @param city 城市* @param country 国家*/public Address(String city, String country) {this.city = city;this.country = country;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}public String getCountry() {return country;}public void setCountry(String country) {this.country = country;}@Overridepublic String toString() {return "Address{" +"city='" + city + '\'' +", country='" + country + '\'' +'}';}
}

 FamilyMember 家庭成员类

public class FamilyMember {@Indexedprivate String type;@Indexedprivate String username;public FamilyMember() {}public FamilyMember(String type, String username) {this.type = type;this.username = username;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}@Overridepublic String toString() {return "FamilyMember{" +"type='" + type + '\'' +", username='" + username + '\'' +'}';}
}

3.编写Repository接口

不需要添加spring-boot-starter-data-jpa这个依赖,即:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

 只要继承CrudRepository即可,如下:

public interface PersonRepository extends CrudRepository<Person, String> {List<Person> findByLastname(String lastname);Page<Person> findPersonByLastname(String lastname, Pageable page);List<Person> findByFirstnameAndLastname(String firstname, String lastname);List<Person> findByAddress_City(String city);List<Person> findByFamilyMemberList_Username(String username);}

4.在全局配置文件application.properties中添加Redis数据库连接配置

# Redis服务器地址
spring.redis.host=127.0.0.1# Redis服务器连接端口
spring.redis.port=6379# Redis服务器连接密码(默认为空)
spring.redis.password=

5.编写单元测试进行接口方法测试以及整合测试

@SpringBootTest
class RedisTests {@Autowiredprivate PersonRepository personRepository;@Testpublic void testSave(){Person person1 = personRepository.save(new Person("James", "Harden"));System.out.println(person1);Person person2 = new Person("张", "有才");Address address = new Address("北京", "中国");person2.setAddress(address);//创建并添加家庭成员FamilyMember familyMember1 = new FamilyMember("父亲", "张朝阳");FamilyMember familyMember2 = new FamilyMember("母亲", "王美美");ArrayList<FamilyMember> familyMembers = new ArrayList<>();familyMembers.add(familyMember1);familyMembers.add(familyMember2);person2.setFamilyMemberList(familyMembers);System.out.println(personRepository.save(person2));}@Testpublic void selectPerson() {List<Person> list = personRepository.findByAddress_City("北京");System.out.println(list);}@Testpublic void updatePerson() {Person person = personRepository.findByFirstnameAndLastname("张","有才").get(0);person.setLastname("小明");Person update = personRepository.save(person);System.out.println(update);}@Testpublic void deletePerson() {Person person = personRepository.findByFirstnameAndLastname("张","小明").get(0);personRepository.delete(person);}
}


http://www.mrgr.cn/news/97390.html

相关文章:

  • MySQL窗口函数学习
  • AI爬虫?爬!
  • [ctfshow web入门] 零基础版题解 目录(持续更新中)
  • Nginx-keepalived-高可用
  • Nginx 负载均衡案例配置
  • RAG 架构地基工程-Retrieval 模块的系统设计分享
  • 深度学习环境安装
  • 蓝桥杯嵌入式第十四届模拟二(PWM、USART)
  • K8S学习之基础七十四:部署在线书店bookinfo
  • Nginx 配置文件解析
  • 如何让 -webkit-slider-thumb 生效
  • c++项目 网络聊天服务器 实现;QPS测试
  • 【HFP】蓝牙HFP应用层核心技术研究
  • 算法基础—前缀和
  • 深入解析多功能模糊搜索:构建高效灵活的JavaScript搜索工具析
  • Java 集合框架与 Stream 流深入剖析(重点详细讲解)
  • ffmpeg视频转码相关
  • Python星球日记 - 第5天:循环结构
  • 个人博客系统——测试报告
  • Python----计算机视觉处理(Opencv:道路检测之提取车道线)