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

温州专业微网站制作价格图片制作器在线制作

温州专业微网站制作价格,图片制作器在线制作,许嵩做的网站,俄文网站商城建设目录: 1. Redis 介绍2. Redis 下载安装3. Redis “服务开启”和“连接配置”4. Spring Boot整合Redis的“前期准备” :① 编写实体类② 编写Repository 接口③ 在“全局配置文件”中添加 “Redis数据库” 的 “相关配置信息” 5. Spring Boot整合“Redis” (案例展示) 作者简介… 目录: 1. Redis 介绍2. Redis 下载安装3. Redis “服务开启”和“连接配置”4. Spring Boot整合Redis的“前期准备” :① 编写实体类② 编写Repository 接口③ 在“全局配置文件”中添加 “Redis数据库” 的 “相关配置信息” 5. Spring Boot整合“Redis” (案例展示) 作者简介 一只大皮卡丘计算机专业学生正在努力学习、努力敲代码中! 让我们一起继续努力学习 该文章参考学习教材为 《Spring Boot企业级开发教程》 黑马程序员 / 编著 文章以课本知识点 代码为主线结合自己看书学习过程中的理解和感悟 最终成就了该文章 文章用于本人学习使用 同时希望能帮助大家。 欢迎大家点赞 收藏⭐ 关注哦 侵权可联系我进行删除如果雷同纯属巧合 ​ Spring Boot 除了 对 关系型数据库 的 整合支持 外Spring Boot对 非关系型数据库 也提供了非常好的支持。如 : Spring Boot对 非关系型数据库Redis 的 整合使用。 1. Redis 介绍 Redis 是一个 开源(BSD 许可)的、内存 中的 数据结构存储系统 它可以用作 数据库、缓存和消息中间件并提供多种语言的API。 Redis 支持 多种类型的数据结构例如 字符串(strings)、散列( hashes )、列表( lists )、集合( sets)等。同时Redis内部内置了复本(replication)、LUA 脚本( Lua scripting )、LRU 驱动事件( LRU eviction )、事务(Transaction)和 不同级别的磁盘持久化( persistence )并通过Redis Sentinel 和 自动分区提供高可用性( high availability )。相较于其他的 key-value 键值存储系统而言 Redis主要有以下优点 ① 存取速度快 : Redis 速度非常快每秒可执行大约 110000次 的 设值操作或者执行 81000 次的 读取操作。 ② 支持丰富的数据类型 : Redis 支持开发人员常用的大多数数据类型例如列表、集合、排序集和散列等。 ③ 操作具有原子性 : 所有 Redis 操作 都是 原子操作这确保如果两个客户端并发访问Redis服务器能接收更新后的值。 ④ 提供多种功能 : Redis 提供了多种功能特性可用作非关系型数据库、缓存中间件、消息中间件等。 2. Redis 下载安装 Redis下载安装 Redis入门 (Redis下载安装)-跳转博客 3. Redis “服务开启”和“连接配置” 完成 Redis 的下载安装后启动Redis 服务并使用 可视化客户端工具 连接对应的Redis 服务进行效果测试具体操作步骤如下 : (1) 开启Redis服务 (2) Redis可视化客户端工具正常安装连接 Redis入门 (Redis “服务开启”和“连接配置”)-跳转博客 4. Spring Boot整合Redis的“前期准备” : ① 编写实体类 编写实体类中最重要的是懂得使用SpringBoot整合Redis中的常用注解 注解描述RedisHash( 存储空间的名称 )注解用于指定操作 实体类对象 在 Redis 数据库 中的 存储空间。如: RedisHash(“persons”) 表示此处的的Redis数据都存储在 Redis 数据库中 名为 persons 的 存储空间 下。ld注解用于 标识实体类 “主键”。在Redis数据库中会 默认生成“字符串形式” 的 HashKey 表示 唯一 的实体对象id当然也可以在数据存储时 手动指定id。Indexed注解用于 标识 “对应属性” 在Redis数据库中 生成二级索引。使用该注解后会在Redis数据库中生成属性对应的二级索引索引名称就是属性名可以方便地进行数据条件查询。 例子如 : person.java( 实体类 ) : package com.myh.chapter_08.domain;import org.springframework.data.annotation.Id; import org.springframework.data.redis.core.RedisHash; import org.springframework.data.redis.core.index.Indexed;RedisHash(RedisPersonInfo) //将要存储的数据都存储在Redis数据库中的RedisPersonInfo的这个命名空间下 public class Person {Id //标识“实体类”的“主键”private String id;//在redis数据库中生成“属性”对应的“二级索引”Indexed //表述该属性在redis数据库中生成二级索引 (“索引名”就是“属性名”)private String firstname;Indexed //在数据库中生成“属性”对应的“二级索引”private String 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;}Overridepublic String toString() {return Person{ id id \ , firstname firstname \ , lastname lastname \ };}public Person(String id, String firstname, String lastname) {this.id id;this.firstname firstname;this.lastname lastname;}public Person() { //无参构造方法} }Address.java : package com.myh.chapter_08.domain;import org.springframework.data.annotation.Id; import org.springframework.data.redis.core.RedisHash; import org.springframework.data.redis.core.index.Indexed;public class Address {Indexed //表述该属性在redis数据库中生成二级索引 (“索引名”就是“属性名”)private String city;Indexed //在数据库中生成“属性”对应的“二级索引”private String 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 \ };}public Address(String city, String country) {this.city city;this.country country;}public Address() {}}Address.java : package com.myh.chapter_08.domain;import org.springframework.data.redis.core.index.Indexed;public class Family {Indexedprivate String type;Indexedprivate String 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;}public Family(String type) {this.type type;}Overridepublic String toString() {return Family{ type type \ , username username \ };}public Family(String type, String username) {this.type type;this.username username;}public Family() { //无参构造方法} }② 编写Repository 接口 Spring Boot 针对包括 Redis在内 的一些 常用数据库 提供了 自动化配置可以通过 实现 Repository接口 简化 对数据库中的数据进行的 增删改查操作这些操作方法同 Spring Data JPA操作数据的使用方法基本相同可以使用方法名关键字进行数据操作。 (方法名关键字查询也称为 方法名约定查询是一种 约定大于配置 的 查询方式。这种方式允许开发者通过简单的方法命名来定义查询 ( 方法的命名是有一定的规律的 ) ) 例子如 PersonRepository.java ( Repository接口 ) package com.myh.chapter_08.Repository.Repository;import com.myh.chapter_08.domain.Person; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.repository.CrudRepository;import java.util.List;//CrudRepositoryT, ID , T表示实体类对象类型; ID表示实体类中的主键的“类型” public interface PersonRepository extends CrudRepositoryPerson,String { //Person类对应的Repository接口 : 该接口中为操作数据库的方法/*** 使用方法名关键字 的方式进行数据操作 :**///根据lastname属性值进行数据查询//相当于 select * from 表名 where lastname ?1ListPerson findByLastname(String lastname);//根据lastname属性进行“分页查询”//findPersonByLastname 中的 Person表示“最后的返回值”为Person类型对象 (当然还要结合形成“分页效果”)PagePerson findPersonByLastname(String lastname, Pageable page);//根据firstname 和 lastname两个参数进行数据查询//相当于 select * from 表名 where firstname ?1 and lastname ?2ListPerson findByFirstnameAndLastname(String firstname, String lastname);/*根据city属性进行查询 (但这个city属性为Person对象中的Address对象类型属性中的子属性)所以用Address_City这种表示形式findByAddress_City 本质上和 findByLastname 都是“同一种” 方法名关键字查询的方式 (Address_City 表示 Address对象属性中的子属性)*/ListPerson findByAddress_City(String city); //根据City属性查询数据/*findByFamilyList_Username 本质上和 findByLastname都是“同一种” 方法名关键字查询的方式 (FamilyList_Username 表示 Family对象属性中的子属性)*/ListPerson findByFamilyList_Username(String usernmae); //根据usernmae属性查询数据}在上面的代码中PersonRepository接口 继承 自 CrudRepository接口该接口中定义了若干查询方法。需要说明的是在 操作Redis 数据库时编写的 Reposiitory 接口 文件 需要继承CrudRepository接口而 不是继承JpaRepository这是因为 JpaReposiitory 是 Spring Boot 整合 JPA特有的。当然也可以在项目pom.xml 文件中同时导入Spring Boot 整合的 JPA 依赖和 Redis依赖这样就可以编写一个继承JpaRepository 的接口操作 Redis数据库了。 ③ 在“全局配置文件”中添加 “Redis数据库” 的 “相关配置信息” #配置Redis数据库连接信息/连接参数 #Redis服务器地址 spring.redis.host 127.0.0.1 #Redis服务器连接端口(默认为6379) spring.redis.port6379 #Redis服务连接器密码(默认为空) spring.redis.passwordroot上述代码中在Spring Boot项目的全局配置文件application.properties 中额外添加了 Redis数据库的相关配置信息这与之前介绍的使用 Redis 客户端可视化工具连接 时 设置的参数基本一致。除了一些基本配置外还可以根据需要添加Redis数据库相关的其他配置。 注意点 在上述示例 application.properties 中主要配置了Redis数据库的 服务地址 和 端口号而Spring Boot内部默认 Redis服务地址为本机( localhost 或 127.0.0.1)服务端口号为6379这与前面开启的Redis服务一致所以这种情况下省略上述配置仍可以正常连接访问本地开启的Redis服务。 5. Spring Boot整合“Redis” (案例展示) Spring Boot整合“Redis” ,例子如 : 创建项目 Address.java : package com.myh.chapter_08.domain;import org.springframework.data.annotation.Id; import org.springframework.data.redis.core.RedisHash; import org.springframework.data.redis.core.index.Indexed;public class Address {Indexed //表述该属性在redis数据库中生成二级索引 (“索引名”就是“属性名”)private String city;Indexed //在数据库中生成“属性”对应的“二级索引”private String country;//省略属性的get、set方法//省略有参和无参构造方法//省略toString()方法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 \ };}public Address(String city, String country) {this.city city;this.country country;}public Address() {} }Family.java : package com.myh.chapter_08.domain;import org.springframework.data.redis.core.index.Indexed;public class Family {Indexedprivate String type;Indexedprivate String username;//省略属性的get、set方法//省略有参和无参构造方法//省略toString()方法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;}public Family(String type) {this.type type;}Overridepublic String toString() {return Family{ type type \ , username username \ };}public Family(String type, String username) {this.type type;this.username username;}public Family() { //无参构造方法} }Person.java : package com.myh.chapter_08.domain;import org.springframework.data.annotation.Id; import org.springframework.data.redis.core.RedisHash; import org.springframework.data.redis.core.index.Indexed;import java.util.List;RedisHash(RedisPersonInfo) //将要存储的数据都存储在Redis数据库中的RedisPersonInfo的这个命名空间下 public class Person {Id //标识“实体类”的“主键”private String id;//在redis数据库中生成“属性”对应的“二级索引”Indexed //表述该属性在redis数据库中生成二级索引 (“索引名”就是“属性名”)private String firstname;Indexed //在数据库中生成“属性”对应的“二级索引”private String lastname;private Address address;private ListFamily familyList;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 ListFamily getFamilyList() {return familyList;}public void setFamilyList(ListFamily familyList) {this.familyList familyList;}Overridepublic String toString() {return Person{ id id \ , firstname firstname \ , lastname lastname \ , address address , familyList familyList };}public Person(String id, String firstname, String lastname, Address address, ListFamily familyList) {this.id id;this.firstname firstname;this.lastname lastname;this.address address;this.familyList familyList;}public Person() { //无参构造方法}public Person(String firstname, String lastname) {this.firstname firstname;this.lastname lastname;} }PersonRepository.java : package com.myh.chapter_08.Repository.Repository;import com.myh.chapter_08.domain.Person; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.repository.CrudRepository;import java.util.List;//CrudRepositoryT, ID , T表示实体类对象类型; ID表示实体类中的主键的“类型” public interface PersonRepository extends CrudRepositoryPerson,String { //Person类对应的Repository接口 : 该接口中为操作数据库的方法/*** 使用方法名关键字 的方式进行数据操作 :**///根据lastname属性值进行数据查询//相当于 select * from 表名 where lastname ?1ListPerson findByLastname(String lastname);//根据lastname属性进行“分页查询”//findPersonByLastname 中的 Person表示“最后的返回值”为Person类型对象 (当然还要结合形成“分页效果”)PagePerson findPersonByLastname(String lastname, Pageable page);//根据firstname 和 lastname两个参数进行数据查询//相当于 select * from 表名 where firstname ?1 and lastname ?2ListPerson findByFirstnameAndLastname(String firstname, String lastname);/*根据city属性进行查询 (但这个city属性为Person对象中的Address对象类型属性中的子属性)所以用Address_City这种表示形式findByAddress_City 本质上和 findByLastname 都是“同一种” 方法名关键字查询的方式 (Address_City 表示 Address对象属性中的子属性)*/ListPerson findByAddress_City(String city); //根据City属性查询数据/*findByFamilyList_Username 本质上和 findByLastname都是“同一种” 方法名关键字查询的方式 (FamilyList_Username 表示 Family对象属性中的子属性)*/ListPerson findByFamilyList_Username(String usernmae); //根据usernmae属性查询数据}application.properties : #配置Redis数据库连接信息/连接参数 #Redis服务器地址 spring.redis.host 127.0.0.1 #Redis服务器连接端口(默认为6379) spring.redis.port6379 #Redis服务连接器密码(默认为空) spring.redis.passwordrootpom.xml : ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.1.3.RELEASE/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.myh/groupIdartifactIdchapter_08/artifactIdversion0.0.1-SNAPSHOT/versionnamechapter_08/namedescriptionDemo project for Spring Boot/descriptionpropertiesjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.28/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter/artifactIdversionRELEASE/versionscopetest/scope/dependency/dependencies!-- build-- !-- plugins-- !-- plugin-- !-- groupIdorg.springframework.boot/groupId-- !-- artifactIdspring-boot-maven-plugin/artifactId-- !-- /plugin-- !-- /plugins-- !-- /build--/projectChapter08ApplicationTests.java : package com.myh.chapter_08;import com.myh.chapter_08.Repository.Repository.PersonRepository; import com.myh.chapter_08.domain.Address; import com.myh.chapter_08.domain.Family; import com.myh.chapter_08.domain.Person; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner;import java.util.ArrayList; import java.util.List;RunWith(SpringRunner.class) SpringBootTest class Chapter08ApplicationTests {Autowiredprivate PersonRepository personRepository;Testpublic void savePerson() {Person person new Person(张, 有才);Person person2 new Person(James, Harden);//创建并添加地址信息Address address new Address(北京, China);person.setAddress(address);//创建并添加家庭成员ListFamily list new ArrayList();Family dad new Family(父亲, 张良);Family mom new Family(母亲, 李香君);list.add(dad);list.add(mom);person.setFamilyList(list);//向Redis数据库添加数据Person save personRepository.save(person);Person save2 personRepository.save(person2);System.out.println(save);System.out.println(save2);System.out.println(向Redis数据库中插入成功);}Testpublic void selectPerson() {ListPerson 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);//删除Redis数据库中的数据System.out.println(删除Redis数据库中的数据成功!);} }
http://www.dnsts.com.cn/news/54276.html

相关文章:

  • 安徽城乡建设 厅网站网站推广包含哪些方法
  • 专业做网站关键词排名下掉wordpress本地图片
  • 淄博周村网站建设公司郑州网站建设知乎
  • 自己电脑做网站服务器wordpress 4 drupal 8
  • 网站建设招标书组成米拓建站教程
  • 用ps切片做网站能不能完成网站建设评审会的通知
  • wordpress 后台错乱天津seo外包团队
  • 网站建设怎么申请空间最好的网站建设机构
  • 中国建设执业网站搜索引擎营销名词解释
  • 鸿兴网站建设公司手机网站商城建设
  • 如何查询网站开发凡科怎么样
  • 腾讯云wed服务器做网站百度网页搜索
  • 湘潭网站制作连云港网站建设制作
  • 网站建设支付安全seo优化方法有哪些
  • 泉州哪里做网站开发做标签网站
  • 做印量调查的网站网站备案授权书模板
  • 做网站拉广告wordpress 升级 权限
  • wordpress在线邮箱验证网站需要怎么优化比较好
  • wordpress网站加cnzz哪些网站做宾馆推广好
  • 北京附近做网站的公司有哪些网站一年要多少钱
  • 做网站用的浏览器有哪些衡水如何做企业网站
  • 网站制作过程内容网站优化试卷
  • 建设银行河北省分行网站安吉网站建设公司
  • 手机网站的开发上海啥情况
  • 中山市 做网站搜索引擎关键词竞价排名
  • 电子商务网站的建设心得网站建设一键搭建
  • 山东省建设厅官方网站备案期间 需要关闭网站吗
  • 沈阳建设厅官方网站找别人做的网站问什么域名解析后还是上线不
  • 柳州网站建设排行榜做网站公司找意向客户
  • 策划行业网站wordpress系统和插件下载