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.編寫三個實體類

@RedisHash("persons") ?// 指定操作實體類對象在Redis數據庫中的存儲空間
public?class?Person {@Id// 標識實體類主鍵private?String id;// 標識對應屬性在Redis數據庫中生成二級索引,索引名就是屬性名,可以方便地進行數據條件查詢@Indexedprivate?String firstname;@Indexedprivate?String lastname;private Address address;private?List<Family>familyList;public?Person() {??? }public?Person(String firstname, String lastname) {this.firstname?= firstname;this.lastname?= lastname;}//補充get set toString}
public class Address {@Indexedprivate String city;@Indexedprivate String country;public Address() {}public Address(String city, String country) {this.city = city;this.country = country;}//補充get set toString}
public class Family {@Indexedprivate String type;@Indexedprivate String username;public Family() {??? }public Family(String type, String username) {this.type = type;this.username = username;}//補充get set toString}

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> findByFamilyList_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
public?class?RedisTests {@Autowiredprivate?PersonRepository repository;@Testpublic void?savePerson() {Person person?=new?Person("張","有才");Person person2?=new?Person("James","Harden");// 創建并添加住址信息Address address=new?Address("北京","China");person.setAddress(address);// 創建并添加家庭成員List<Family>list?=new?ArrayList<>();Family dad?=new?Family("父親","張良");Family mom?=new?Family("母親","李香君");list.add(dad);list.add(mom);person.setFamilyList(list);// 向Redis數據庫添加數據Person save?= repository.save(person);Person save2?= repository.save(person2);System.out.println(save);System.out.println(save2);}@Testpublic void?selectPerson() {List<Person>list?= repository.findByAddress_City("北京");System.out.println(list);}@Testpublic void updatePerson() {Person person?= repository.findByFirstnameAndLastname("張","有才").get(0);person.setLastname("小明");Person update?= repository.save(person);System.out.println(update);}@Testpublic void?deletePerson() {Person person?= repository.findByFirstnameAndLastname("張","小明").get(0);repository.delete(person);}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/75229.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75229.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/75229.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python 語法篇(一)

目錄 1 正則匹配注意點11.1 正則匹配字符串寫法1.2 創建re函數&#xff08;1&#xff09;re.search()--搜索第一個匹配項&#xff08;2&#xff09;re.match() - 從字符串開頭匹配&#xff08;3&#xff09;re.findall() - 返回所有匹配項的列表&#xff08;4&#xff09;re.fi…

深度學習Note.4(機器學習實踐)

線性回歸 零. 1.paddle庫的一些API paddle.rand(shape,dtype None, name None) *隨機生成符合均勻分布的Tensor paddle.nromal(mean 0.0, std 1.0, shape None, name None) *隨機生成符合正態分布的Tensor *輸入正態分布均值&#xff0c;標準差&#xff0c; 生成結果的…

UE5學習筆記 FPS游戲制作29 更換武器時更換武器的圖標

文章目錄 制作物體圖標UI添加獲取武器圖標的方法使用事件分發器&#xff0c;通知UI要換槍定義事件分發器調用事件分發器注冊事件分發器 制作物體圖標UI 在Fpp-UI上添加一個圖片&#xff0c;改名為五weaponIcon&#xff0c;勾選SizeToContent,錨點放在右下角&#xff0c;對齊改…

RCE(自增、取反、異或)

自增: 也就是說&#xff0c;a > b&#xff0c;b > c... 所以&#xff0c;我們只要能拿到一個變量&#xff0c;其值為a&#xff0c;通過自增操作即可獲得a-z中所有字符。 無字母數字構造&#xff1a; 所有敏感字符串&#xff08;ASSERT、_POST&#xff09;通過自增動態生…

從架構角度談談云原生架構

1、云原生架構起源 隨著云服務商的成熟&#xff0c;客戶面臨著將服務直接使用云平臺的服務部署在云平臺上&#xff0c;或者采用本地和云上混合部署的模式來對外提供服務&#xff0c;從解決方案的角度來說&#xff0c;采用云原生架構的優點有&#xff1a; 可以利用云服務的管理…

Zcanpro搭配USBCANFD-200U在新能源汽車研發測試中的應用指南(周立功/致遠電子)

——國產工具鏈的崛起與智能汽車測試新范式 引言&#xff1a;新能源汽車測試的國產化突圍 隨著新能源汽車智能化、網聯化程度的提升&#xff0c;研發測試面臨三大核心挑戰&#xff1a;多協議融合&#xff08;CAN FD/LIN/以太網&#xff09;、高實時性數據交互需求、復雜工況下…

【Verilog】實驗十 帶倒計時交通燈控制電路設計

目錄 一、實驗目的 二、實驗環境 三、實驗任務 四、實驗原理與實驗步驟 1. 實驗原理 2. 實驗步驟 五、實驗思考 代碼 TOP.v trafic2_2.v shumaguan.v clk_div.v 一、實驗目的 1. 掌握同步有限狀態機的設計方法。 2. 采用狀態機的設計方法&#xff0c;設計實現帶倒…

Linux : System V 共享內存

目錄 一 前言 二 共享內存概念 三 共享內存創建 四 查看共享內存 五 共享內存的刪除 六 共享內存的關聯 七 共享內存去關聯 八 共享內存的使用&#xff08;通信&#xff09; 九 共享內存的特點 一 前言 共享內存區是最快的IPC形式&#xff08;進程間通信&#xff1…

Spring Cloud 2023.x安全升級:OAuth2.1與JWT動態輪換實戰

引言&#xff1a;當安全遇上云原生&#xff0c;零停機密鑰輪換成為剛需 在微服務架構中&#xff0c;OAuth2.1與JWT已成為身份驗證的黃金標準&#xff0c;但傳統方案存在兩大痛點&#xff1a; 密鑰輪換風險&#xff1a;手動替換JWT密鑰需重啟服務&#xff0c;導致短暫鑒權中斷&…

創建私人阿里云docker鏡像倉庫

一.登錄阿里云 https://cr.console.aliyun.com/cn-hangzhou/instances 二.創建個人實例 【實例列表】 》【創建個人實例】 》【設置Registry登錄密碼】 三.創建命名空間 步驟&#xff1a;【個人實例】》【命名空間】》【創建命名空間】 注:一個賬號最多可以創建3個命名空…

oracle基礎知識視圖的定義和應用

1.1 視圖的定義 視圖(View)是數據庫中非常重要的內容&#xff0c;在實際開發中必須學會視圖的編寫。 用于產生視圖的表叫做該視圖的基表。一個視圖也可以從另一個視圖中產生。視圖是可以嵌套的。 視圖的定義存在數據庫中&#xff0c;與此定義相關的數據并沒有再存一份于數據庫中…

邊緣計算:工業自動化的智能新引擎

在工業4.0的浪潮中&#xff0c;工業自動化正經歷著前所未有的變革。隨著物聯網&#xff08;IoT&#xff09;技術的普及&#xff0c;越來越多的工業設備被連接到網絡中&#xff0c;產生了海量的數據。然而&#xff0c;傳統的云計算架構在處理這些實時性要求極高的工業數據時&…

12-SpringBoot3入門-項目打包和運行

1、打包 1&#xff09;打包插件 pom.xml <!--SpringBoot應用打包插件--> <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plu…

【PCIE711-214】基于PCIe總線架構的4路HD-SDI/3G-SDI視頻圖像模擬源

產品概述 PCIE711-214是一款基于PCIE總線架構的4路SDI視頻模擬源。該板卡為標準的PCIE插卡&#xff0c;全高尺寸&#xff0c;適合與PCIE總線的工控機或者服務器&#xff0c;板載協議處理器&#xff0c;可以通過PCIE總線將上位機的YUV 422格式視頻數據下發通過SDI接口播放出去&…

PipeWire 音頻設計與實現分析一——介紹

PipeWire 是一個基于圖的媒體處理引擎&#xff0c;一個可以運行多媒體節點圖的媒體服務器&#xff0c;是 Linux 的音頻/視頻總線&#xff0c;它管理 Linux 系統中&#xff0c;不同應用程序對音頻和視頻設備的共享訪問。它提供了一個本地客戶端音頻 API&#xff0c;但也提供兼容…

使用卷積神經網絡識別MNIST數據集

卷積神經網絡 卷積神經網絡本質是共享權重稀疏鏈接的全連接網絡 編寫步驟 構建一個神經網絡&#xff0c;步驟是幾乎不變的&#xff0c;大概有以下幾步 準備數據集 #更高級的CNN網絡 import torch import torch.nn as nn import torch.nn.functional as F import torchvisi…

力扣125.驗證回文串

如果在將所有大寫字符轉換為小寫字符、并移除所有非字母數字字符之后&#xff0c;短語正著讀和反著讀都一樣。則可以認為該短語是一個 回文串 。 字母和數字都屬于字母數字字符。 給你一個字符串 s&#xff0c;如果它是 回文串 &#xff0c;返回 true &#xff1b;否則&#…

UR機械臂sim2real推薦包

推薦一個和ur機械臂配套的interface&#xff1a; ur_rtde Universal Robots RTDE C Interface — ur_rtde 1.6.0 documentation 也歡迎大家提供新想法和bug

CST學習筆記(三)MATLAB與CST聯合仿真-遠場數據批量導出

CST學習筆記&#xff08;三&#xff09;MATLAB與CST聯合仿真-遠場數據批量導出 一、直接數據導出 &#xff08;1&#xff09;打開遠場&#xff0c;調至笛卡爾坐標系 &#xff08;2&#xff09;然后點擊post processing → Import/Export → Plot Data (ASCII) &#xff0c;即…

藍橋杯---BFS解決FloofFill算法1---圖像渲染

文章目錄 1.算法簡介2.題目概述3.算法原理4.代碼分析 1.算法簡介 這個算法是關于我們的floodfill的相關的問題&#xff0c;這個算法其實從名字就可以看出來&#xff1a;洪水灌溉&#xff0c;其實這個算法的過程就和他的名字非常相似&#xff0c;下面的這個圖就生動的展示了這個…