首页 > 其他分享 >Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇

时间:2023-05-28 15:01:09浏览次数:41  
标签:13 SpringData 创建 接口 查询 Elasticsearch 测试 操作

引言

上一篇主要讲解的是:使用java操作Elasticsearch api完成常用操作,比如:添加文档、查询文档数据、更新文档数据、删除文档数据、批量添加、批量更新、批量删除、查询指定索引中所有数据、匹配查询\分页查询\排序,匹配查询\高亮显示。

本篇主要讲解的是:SpringData简介、一个完整的开发闭环来演示SpringData操作ES(创建spring项目、创建配置文件、创建pojo类、编写测试类、创建dao接口、修改pojo类、创建测试类、Repository增加自定义操作等)

SpringData简介

1、给自己提需求

如果你有一些项目的开发经历,你就会发现所谓的各种各样的项目,剥离业务不看的话,最底层就是对数据库进行:增删改查。

每个java初学者应该都学过jdbc这个技术点,jdbc连接数据库的步骤:

(1)、加载jdbc驱动程序;

(2)、创建数据库的连接;

(3)、创建preparedStatement;

(4)、执行SQL语句;

(5)、遍历结果集;

(6)、处理异常,关闭JDBC对象资源。

随着你编写代码的过程中,你会发现jdbc操作数据库中好多重复的代码,感觉写起来非常没有意思。你看兄弟无意中你就给自己提了需求,能不能把这些重复的代码简化了?于是就有了各种各样的框架衍生了

2、SpringData

SpringData是Spring的一个子项目,用于简化数据库访问,支持NoSQL和关系 型数据库存储。其主要目标是使得对数据的访问变得方便快捷。

可以极大的简化java的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了CRUD外,还包括如分页、排序等一些常用的功能。

3、SpringData提供的接口

一起来看看Spring Data提供的接口,在后面的代码中会演示一些  

(1)、Repository:最顶层的接口,是一个空的接口,目的是为了统一所有Repository的类型,且能让组件扫描的时候自动识别。

(2)、CrudRepository :是Repository的子接口,提供CRUD的功能

(3)、PagingAndSortingRepository:是CrudRepository的子接口,添加分页和排序的功能

(4)、JpaRepository:是PagingAndSortingRepository的子接口,增加了一些实用的功能,比如:批量操作等。

(5)、JpaSpecificationExecutor:用来做负责查询的接口

(6)、Specification:是Spring Data JPA提供的一个查询规范,要做复杂的查询,只需围绕这个规范来设置查询条件即可

创建spring项目

双击IntelliJ IDEA工具

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_idea

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_java_02

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_SpringData_03

 自定义URL,不要使用默认的地址,速度太慢了。一定要修改成aliyun

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_maven_04

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_SpringData_05

此处选择组件(pom.xml文件中加入对应jar包的依赖)

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_Elasticsearch_06

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_idea_07

项目创建完成(maven自动把Elasticsearch相关的包也导入了)

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_Elasticsearch_08

创建配置文件

默认配置文件是application.resource

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_java_09

application.resource重新命名成application.yml,然后编辑如下内容

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_Elasticsearch_10

创建pojo类

创建一个package命名为pojo

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_Elasticsearch_11

pojo中创建Goods类文件(代码内容较多,分成多张图片显示,注意行号标识)

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_maven_12

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_idea_13

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_SpringData_14

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_idea_15

查看现有的索引

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_idea_16

可以看到当前只有1个索引,它叫ik

编写测试类

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_Elasticsearch_17

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_maven_18

运行测试类

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_java_19

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_SpringData_20

查看现有的索引

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_Elasticsearch_21

可以看到新产生了一个shop1索引

创建dao接口

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_maven_22

编辑内容如下

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_Elasticsearch_23

编写测试类

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_java_24

运行测试类

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_Elasticsearch_25

查看shop1索引中数据

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_Elasticsearch_26

GoodsRepository中增加自定义操作

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_SpringData_27

编写测试类

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_maven_28

运行测试类

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_java_29

运行结果

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_SpringData_30

GoodsRepository增加自定义查询并输入参数

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_Elasticsearch_31

编写测试类

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_idea_32

运行测试类

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_maven_33

运行结果

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_idea_34

结束语

至此,Elasticsearch掰开揉碎系列的第13篇就结束了,本篇主要讲解的是:SpringData简介、一个完整的开发闭环来演示SpringData操作ES(创建spring项目、创建配置文件、创建pojo类、编写测试类、创建dao接口、修改pojo类、创建测试类、Repository增加自定义操作等)

由于页面显示图片大小有限,代码一多图片显示得就偏小。还有一些兄弟们,java的基础又不好,照着我的图片打代码,可能因为手误都会出错。为了不让任何一个兄弟夭折在学习的路上,有需要本篇文章中java源代码的,就给我留言点赞吧,Elasticsearch系列也写么这多篇了,算是对我的鼓励和支持吧!留下你的邮箱,我把源代码发给你!

从下一篇我给大家带来的是:SpringData操作ES扩展篇,我们依然掰开揉碎的方式去说。后续的内容更精彩,敬请期待,感谢兄弟们的关注!!

标签:13,SpringData,创建,接口,查询,Elasticsearch,测试,操作
From: https://blog.51cto.com/51power/6365101

相关文章

  • Elasticsearch掰开揉碎第17篇SpringBoot集成Elasticsearch之索引操作
    引言上一篇主要讲解的是:高亮显示、自定义高亮显示、通过html展示高亮效果。本篇主要讲解的是:创建SpringBoot项目、SpringBoot项目的配置修改、创建配置类、索引的API操作。创建spring项目双击IntelliJIDEA工具创建配置类编辑测试类1、创建索引运行测试类运行结果查看现有的索引可......
  • Elasticsearch掰开揉碎第18篇SpringBoot集成Elasticsearch之文档操作
    引言上一篇主要讲解的是:创建SpringBoot项目、SpringBoot项目的配置修改、创建配置类、索引的API操作本篇主要讲解的是:文档的API操作(创建pojo、导入fastjosn依赖、添加文档、获取文档、获取文档信息、更新文档信息、删除文档信息、批量插入数据、高级查询)本篇文中所有操作,接着在上......
  • Elasticsearch掰开揉碎第4篇倒排索引
    引言上一篇主要讲解的是在windows环境下:Elasticsearch的单机、Elasticsearch的伪集群。本篇主要讲解的是:传统数据库的索引、Elasticsearch的倒排索引、Elasticsearch与关系型数据库对比。传统数据库的索引索引简介索引是数据库中,表级管理必须要配置的。如果不做索引,表级扫描是全表......
  • Elasticsearch掰开揉碎第10篇maven项目
    引言上一篇主要讲解Java基础环境搭建:jdk和maven的安装\配置、eclipse和jdk\maven集成、idea和jdk\maven集成本篇主要讲解的是:使用eclipse创建普通java项目\maven项目,使用idea创建普通java项目\maven项目。普通java项目简介1、什么是javaJava可以编写桌面应用程序、Web应用程序、分......
  • Elasticsearch掰开揉碎第11篇java操作ES前期准备
    引言上一篇主要讲解的是:使用eclipse创建普通java项目\maven项目,使用idea创建普通java项目\maven项目。本篇主要讲解的是:使用java操作Elasticsearch的前期准备(创建索引库、设置mapping、插入数据、验证数据、创建maven项目)前期准备之数据1、创建索引库curl-XPUT'http://192.168......
  • 013关于CentOS6不再维护的解决方法
    一、CentOS6操作系统版本结束了生命周期(EOL),Linux社区已不再维护该操作系统版本。建议您升级操作系统至CentOS7及以上,如果您的业务过渡期仍需要使用CentOS6系统中的一些安装包,请根据下文切换CentOS6的源。解决:CentOS6EOL如何切换源?(aliyun.com)sudoyumcleanall&&s......
  • Appium自动化(13):Appium常用操作之TouchAction操作
    TouchAction操作Appium的辅助类,主要针对手势操作,比如滑动、长按、拖动等。其原理是将一系列的动作放在一个链条中,然后将该链条传递给服务器。服务器接受到该链条后,解析各个动作,逐个执行。TouchAction类支持的动作很多;常用操作如下:1、press(self,el=None,x=None,y=None): 按......
  • elasticsearch-7.12.1集群设置账号密码(亲测可用)
    ES7.7以后的版本将安全认证功能免费开放了。并将X-pack插件集成了到了开源的ElasticSearch版本中。1.在集群的“主节点”上生成证书切换到elastsearch的目录下,使用下列命令生成证书bin/elasticsearch-certutilcert-outconfig/elastic-certificates.p12-pass""2.将生成......
  • ASEMI代理长电可控硅BT134的工作原理,BT134的应用领域
    编辑-Z本文将对可控硅BT134的工作原理及应用领域进行详细阐述。首先,我们将介绍可控硅BT134的基本概念和工作原理;其次,我们将探讨可控硅BT134在电力电子领域的应用;接着,我们将分析可控硅BT134在家用电器中的应用;最后,我们将讨论可控硅BT134在工业自动化领域的应用。 1、可控硅BT134的......
  • ASEMI代理长电可控硅BT136参数,BT136规格,BT136说明
    编辑-Z长电可控硅BT136参数:型号:BT136RMS通态电流IT(RMS):6A非重复浪涌峰值导通电流ITSM:25A峰值栅极电流IGM:2A平均栅极功耗PG(AV):0.5W存储接点温度范围Tstg:-40to+150℃工作接点温度范围Tj:-40to+125℃额定重复峰值关闭状态/反向电压VDRM,VRRM:600V额定重复峰值关断状态电流IDRM,IR......