Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇
  Lb78AVwchy8f 2023年11月02日 69 0

引言

上一篇主要讲解的是:使用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基础篇_SpringData_02

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

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

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

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

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

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

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

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

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

创建配置文件

默认配置文件是application.resource

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

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

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

创建pojo类

创建一个package命名为pojo

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

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

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

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

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

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

查看现有的索引

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

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

编写测试类

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

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

运行测试类

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

Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇_maven_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基础篇_SpringData_24

运行测试类

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

查看shop1索引中数据

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

GoodsRepository中增加自定义操作

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

编写测试类

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

运行测试类

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

运行结果

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

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

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

编写测试类

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

运行测试类

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

运行结果

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

结束语

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

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

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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  3I1N9ysrcSyk   2023年12月08日   31   0   0 javahapi数据交换
  DF5J4hb0hcmT   2023年12月07日   50   0   0 javaArthas
  DF5J4hb0hcmT   2023年12月06日   38   0   0 IDEATomcat
Lb78AVwchy8f