博观而约取,厚积而薄发。这篇文章主要讲述Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇相关的知识,希望能为你提供帮助。
引言上一篇主要讲解的是:使用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工具
文章图片
文章图片
文章图片
自定义URL,不要使用默认的地址,速度太慢了。一定要修改成aliyun
此处选择组件(pom.xml文件中加入对应jar包的依赖)
项目创建完成(maven自动把Elasticsearch相关的包也导入了)
创建配置文件默认配置文件是application.resource
application.resource重新命名成application.yml,然后编辑如下内容
创建pojo类创建一个package命名为pojo
pojo中创建Goods类文件(代码内容较多,分成多张图片显示,注意行号标识)
查看现有的索引
可以看到当前只有1个索引,它叫ik
编写测试类
运行测试类
查看现有的索引
可以看到新产生了一个shop1索引
创建dao接口
编辑内容如下
编写测试类
运行测试类
查看shop1索引中数据
GoodsRepository中增加自定义操作
编写测试类
运行测试类
运行结果
GoodsRepository增加自定义查询并输入参数
编写测试类
运行测试类
运行结果
结束语至此,Elasticsearch掰开揉碎系列的第13篇就结束了,本篇主要讲解的是:SpringData简介、一个完整的开发闭环来演示SpringData操作ES(创建spring项目、创建配置文件、创建pojo类、编写测试类、创建dao接口、修改pojo类、创建测试类、Repository增加自定义操作等)
由于页面显示图片大小有限,代码一多图片显示得就偏小。还有一些兄弟们,java的基础又不好,照着我的图片打代码,可能因为手误都会出错。为了不让任何一个兄弟夭折在学习的路上,有需要本篇文章中java源代码的,就给我留言点赞吧,Elasticsearch系列也写么这多篇了,算是对我的鼓励和支持吧!留下你的邮箱,我把源代码发给你!
【Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇】从下一篇我给大家带来的是:SpringData操作ES扩展篇,我们依然掰开揉碎的方式去说。后续的内容更精彩,敬请期待,感谢兄弟们的关注!!
推荐阅读
- RxJS实现“搜索”功能,这就是“可读”~
- jQuery ajaxSetup()方法用法详细介绍
- Scala包对象介绍和用法简介
- jQuery使用语法简介
- TCS数字面试体验2019(通过CodeVita)
- PHP addslashes()函数用法详细示例
- Java的生命周期和线程状态详细指南
- Twitter面试问题|S2
- PHP Ds\Deque count()函数用法介绍