今天是刘小爱自学Java的第161天。

感谢你的观看,谢谢你。

学习计划安排如下:

  • 学了几天的Elasticserch,但都是它本身的知识点,如何通过Java语言去操作它呢?
  • 这就好比以前学数据库,在数据库工具中通过sql语句也能实现增删改查,而在Java中就可以通过jdbc操作数据库。
  • 这里不学原生的Elasticsearch客户端,而是直接学习spring提供的套件:SpringDataElasticsearch。
  • 毕竟要知道,我们以前也基本没用原生的jdbc,而是用的框架,使用起来也简便。

一、创建Demo工程

关于SpringDataElasticsearch介绍:

学Java有一个绕不开的坎就是spring,就是主流的很多功能都会看到spring的影子。

我们已经接触过了的就有:SpringMVC、Spring、SpringBoot、SpringCloud。

今天继续接触Spring Data中的一个模块。

为了更好地学习,创建一个demo工程。

通过spring脚手架创建项目

①Spring Initializr

使用idea开发工具创建Java项目有多种方式,以前就是通过Maven自行创建一个项目。

也可以通过Spring Initializr创建一个项目。

②说明项目名和Java版本号

项目名为es-demo,使用的jdk8.

③指定项目中需要用到的依赖

这里也就是springDataElasticsearch。

下图也就是创建好后的项目结构

该方式创建的好处在于:

我们不用自己导入依赖了,依赖是在创建项目时指定的,也就是创建项目中的步骤③

同时关于启动类、配置文件都帮我们自学创建好了,其实无外乎就是上述三个核心关键步骤:启动类、配置文件、pom文件

该方式创建的坏处在于:

版本问题,项目中可能用的是比较旧的版本,spring创建的版本需要自行修改。

根据自己的需求选择创建方式就好。

此外关于配置文件

自行配置的是properties文件,而我们常用的是yml文件,这里将其修改成yml文件。

在配置文件中指定elasticsearch中对应的ip+端口,也就是我们前几天在虚拟机上安装elasticsearch的ip和端口。

二、创建索引和映射

我们以前使用MySQL数据库的时候,在Java中是实体类对应了数据库中的表数据。

同样的道理,现在是索引库了,在Java中也是使用实体类对应对应的索引库。

注解@Document说明对应的索引库:

  • indexName:索引库名称叫item。
  • type:索引库类型docs。
  • shards:分片。
  • replicas:副本。

注解@Field说明索引库字段:

类型有很多种,double属于数字型,text和string属于字符型,其中text表示分词,string表示不分词,上述中的keyword其实也就对应着string。

注意images这个字段,index=false表示不需要索引,说明该字段不需要搜索功能。

我们以前学数据库的时候,在Java中操作数据库使用到了JdbcTemplate。

现在是要操作索引库,同样的道理,也有一个ElasticsearchTemplate

①createIndex()

创建索引库,参数为实体类的Class对象。

②putMapping()

说明字段映射关系,参数同上。

三、实现增删改查

通过JdbcTemplate实现数据库的增删改查,索引库中用ElasticsearchTemplate。

但是我们不用这种方式而是用其它方式。

毕竟我们现在操作数据库也没用JdbcTemplate而是常常使用通用mapper。

该方法也就类似于通用mapper。

在通用mapper中我们是创建一个自定义接口继承mapper接口。

再说明泛型之后,就可以直接使用这个接口完成增删改查操作了。

同样的道理,在这里是也是自定义一个接口继承ElasticsearchRepository接口。

关于这个接口的继承体系图通过上图也能查看到,名称也都是见名知义的。

1新增索引

saveAll方法,看它的名字也就知道了其对应的也就是新增操作。

其中关于新增,可以添加一条数据,也可以添加多条数据,例子中使用的是批量操作。

注意:在正式项目中应该是从数据库这种查询到需要实现搜索功能的数据,再将这些数据添加到索引库中,从而实现搜索功能。

我这边为了方便是自己创建的伪数据。

2查询索引

findAll也就是查询所有的数据,因为我们添加了多条数据,所以查询结果是一个集合。

增强for循环遍历输出,在控制台上也就能查询到新增的数据。

同样的道理,还有deleteAll删除索引,当然这是都是最简单最基础的几种api,后续更多用法再说明。

最后

行有不得反求诸己,我是@刘小爱

一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。

java pdf增删改查_如何利用Java代码操作索引库?相关推荐

  1. jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...

    Java使用jdbc连接MySql数据库,实现增删改查 首先,导入MySql连接数据库的jar包,我用的是 mysql连接jar包 DB类,用于获得数据库连接 import java.sql.Driv ...

  2. java pdf增删改查_035、Java--MySQL的增删改查约束

    1.MySQL 中的约束 约束类型 • 非空约束(not null) • 唯一性约束(unique) • 主键约束(primary key) PK • 外键约束(foreign key) FK • 检 ...

  3. java定时任务增删改查_实现Quartz的动态增删改查

    1. Maven依赖 org.quartz-scheduler quartz 2.2.1 org.quartz-scheduler quartz-jobs 2.2.1 2. 业务处理类: import ...

  4. SSM整合_实现增删改查_查找

    写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建 SSM整合_年轻人的第一个增删改查_查找 SSM整合_年轻人的第一个增删改查_新增 SSM整合_年轻人的第一个增删改查_修改 SSM整合_年 ...

  5. 极客技术专题【003期】:java mvc 增删改查 自动生成工具来袭

    日期:2013-4-17  来源:GBin1.com 技术专题介绍 分享专题:java mvc 增删改查 自动生成工具来袭 分享人:激情燃烧的UI 授课时间:2013/04/19  21:00-22: ...

  6. HBase java 的增删改查

    HBase java 的增删改查 . 目前来看好像是我的最全了,应该是大佬不屑于写这种的吧 . 其实本来想写很多方法的,但是写着写着就有点烦了,再加上本人也不全是闲人一个,然后就给停了,看着有点乱,但 ...

  7. visual studio2019连接SQL Server数据库,增删改查详细教程(C#代码)

    visual studio2019连接SQL Server数据库,增删改查详细教程(C#代码) 工具: 1.Visual Studio 2019 2.SQL Server数据库(我使用的2008) 操 ...

  8. java 学生信息的增删改查_学生信息的增删改查(java)

    学生信息的增删改查 注意:此处用到的是access数据库. 运行后效果如图: 代码如下: package example; import java.awt.*; import java.awt.eve ...

  9. python对excel增删改查_利用python模拟sql语句对员工表格进行增删改查

    本文主要给大家介绍了关于python模拟sql语句对员工表格进行增删改查的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 具体需求: 员工信息表程序,实现增删改查操作: 可进行模糊查询, ...

最新文章

  1. 复旦大学把衣服变成了显示器,能聊天能导航,水洗弯折都不怕 | Nature
  2. leetcode内存消耗
  3. python matplotlib库安装出错_使用pip install Matplotlib时出现内存错误
  4. C++的JSON库及使用方法
  5. 第四:Pytest框架之命令行参数(二)
  6. 力的吸引,是否因为负动量
  7. SQL之SQL99语法 没错就这么简单
  8. STM32F429DISCO+AT070TN92 7寸LCD
  9. java利用PageHelper.startPage(page, pageSize)分页
  10. 开源中国众包平台的个人空间 工作日志 正文 关于你对软件众包的误解,你真的错了。
  11. 【Swift 和 OC】
  12. java 基础的数组 添加
  13. 【WPS】未安装VBA支持库,无法运行文档中的宏。如需要启用宏功能,请点击这里了解详情。
  14. 黑苹果 MacOS 10.15 Catalina 安装详细教程带工具资料
  15. 体验篇之联动云租车体验[一日租车]
  16. Excel设置选项按钮
  17. 发票扫一扫,OCR识别功能
  18. 动漫常用网站/APP 彻底帮你解决看动漫的烦恼
  19. Discuz!创始人戴志康:关于命运、成长和目标
  20. linux生成海报时字体问题,研发:k8s pod 服务生成海报时字体出现乱码

热门文章

  1. 设置axios默认访问前缀
  2. 数据装载器连接其他oracle数据库_07
  3. 注册docker hub账号
  4. 基于java+swing+mysql+JFeeChart的企业人力资源管理系统(2)续
  5. python os.path.splitext()的用法_Python常用模块之os.path
  6. confluence启动不起来_汽车“一键启动”只用来点火?太浪费!你不知道的还有这3个功能...
  7. 10进制转换16进制补足0_信息技术教师资格必考内容——进制换算(一)
  8. 小米air耳机重新配对_横比小米 Air 2s 和 OPPO Enco W31:同一颗芯玩出的大不同
  9. cad多线段长度计算总和_没想到啊,我平时用的CAD多段线有这么多学问
  10. linux获取文件的md5,linux shell 获取文件md5的命令linux操作系统 -电脑资料