java pdf增刪改查_如何利用Java代碼操作索引庫?

c7d3f5f26053c516a93dca5b08527dee.png

今天是劉小愛自學Java的第161天。

感謝你的觀看,謝謝你。

a05ee6b739877710666bc9fa9dea6613.png

學習計劃安排如下:

  • 學了幾天的Elasticserch,但都是它本身的知識點,如何通過Java語言去操作它呢?
  • 這就好比以前學數據庫,在數據庫工具中通過sql語句也能實現增刪改查,而在Java中就可以通過jdbc操作數據庫。
  • 這里不學原生的Elasticsearch客戶端,而是直接學習spring提供的套件:SpringDataElasticsearch。
  • 畢竟要知道,我們以前也基本沒用原生的jdbc,而是用的框架,使用起來也簡便。

一、創建Demo工程

關于SpringDataElasticsearch介紹:

a96fca53b8b71b5ab9bad3960bea728d.png

學Java有一個繞不開的坎就是spring,就是主流的很多功能都會看到spring的影子。

我們已經接觸過了的就有:SpringMVC、Spring、SpringBoot、SpringCloud。

今天繼續接觸Spring Data中的一個模塊。

為了更好地學習,創建一個demo工程。

通過spring腳手架創建項目

df752342aaaf57639b48767d177aeb85.png

①Spring Initializr

使用idea開發工具創建Java項目有多種方式,以前就是通過Maven自行創建一個項目。

也可以通過Spring Initializr創建一個項目。

②說明項目名和Java版本號

項目名為es-demo,使用的jdk8.

③指定項目中需要用到的依賴

這里也就是springDataElasticsearch。

下圖也就是創建好后的項目結構

074bb915b3a2f331a1b44ea6197fe919.png

該方式創建的好處在于:

我們不用自己導入依賴了,依賴是在創建項目時指定的,也就是創建項目中的步驟③

同時關于啟動類、配置文件都幫我們自學創建好了,其實無外乎就是上述三個核心關鍵步驟:啟動類、配置文件、pom文件

該方式創建的壞處在于:

版本問題,項目中可能用的是比較舊的版本,spring創建的版本需要自行修改。

根據自己的需求選擇創建方式就好。

此外關于配置文件

66e813f6af0e482f161d80649bae8214.png

自行配置的是properties文件,而我們常用的是yml文件,這里將其修改成yml文件。

在配置文件中指定elasticsearch中對應的ip+端口,也就是我們前幾天在虛擬機上安裝elasticsearch的ip和端口。

二、創建索引和映射

我們以前使用MySQL數據庫的時候,在Java中是實體類對應了數據庫中的表數據。

同樣的道理,現在是索引庫了,在Java中也是使用實體類對應對應的索引庫。

68baaac5e7eba02e732f6bc9d5bccf77.png

注解@Document說明對應的索引庫:

  • indexName:索引庫名稱叫item。
  • type:索引庫類型docs。
  • shards:分片。
  • replicas:副本。

注解@Field說明索引庫字段:

類型有很多種,double屬于數字型,text和string屬于字符型,其中text表示分詞,string表示不分詞,上述中的keyword其實也就對應著string。

注意images這個字段,index=false表示不需要索引,說明該字段不需要搜索功能。

e3fd7067811e6dd72019ea6f4b1f5a11.png

我們以前學數據庫的時候,在Java中操作數據庫使用到了JdbcTemplate。

現在是要操作索引庫,同樣的道理,也有一個ElasticsearchTemplate

①createIndex()

創建索引庫,參數為實體類的Class對象。

②putMapping()

說明字段映射關系,參數同上。

三、實現增刪改查

通過JdbcTemplate實現數據庫的增刪改查,索引庫中用ElasticsearchTemplate。

但是我們不用這種方式而是用其它方式。

畢竟我們現在操作數據庫也沒用JdbcTemplate而是常常使用通用mapper。

該方法也就類似于通用mapper。

74773c90934d78b334e9f33f1ea59dff.png

在通用mapper中我們是創建一個自定義接口繼承mapper接口。

再說明泛型之后,就可以直接使用這個接口完成增刪改查操作了。

同樣的道理,在這里是也是自定義一個接口繼承ElasticsearchRepository接口。

關于這個接口的繼承體系圖通過上圖也能查看到,名稱也都是見名知義的。

1新增索引

62d321be6978f9d34ceed134688e9ab0.png

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

其中關于新增,可以添加一條數據,也可以添加多條數據,例子中使用的是批量操作。

注意:在正式項目中應該是從數據庫這種查詢到需要實現搜索功能的數據,再將這些數據添加到索引庫中,從而實現搜索功能。

我這邊為了方便是自己創建的偽數據。

2查詢索引

c69e070793b55a83723c1aa23555b753.png

findAll也就是查詢所有的數據,因為我們添加了多條數據,所以查詢結果是一個集合。

增強for循環遍歷輸出,在控制臺上也就能查詢到新增的數據。

同樣的道理,還有deleteAll刪除索引,當然這是都是最簡單最基礎的幾種api,后續更多用法再說明。

最后

行有不得反求諸己,我是@劉小愛

一個白天上班晚上學習的95后滬漂,不為其它,只為學會自律做好自己,也愿我的每日打卡能給你帶來勇氣,歡迎點贊關注和評論。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532238.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532238.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532238.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux shell 第幾行,Linux shell 獲得字符串所在行數及位置

shell 獲得字符串所在行數及位置01 獲取字符串所在的行數方式一:用grep -n[rootroot]# cat testapplebitcreatedelectexeflowgood[rootroot]# cat test | grep -n exe5:exe[rootroot]# cat test | grep -n exe | awk -F ":" {print $1}5方式二&#xff1a…

sublime text3 怎么配置、運行python_SublimeText3按ctrl+b執行python無反應

最后更新時間:2017-09-14 現象: 在Sublime中打開.py文件,按”ctrlb”執行時無反應。點擊工具->編譯系統中已經有且識別到Python,但執行”run(ctrlshiftb)”時無反應,Sublime左下角提示”No B…

linux 火鍋平臺,“定制版火鍋”來襲,持續創新才能永葆活力

原標題:“定制版火鍋”來襲,持續創新才能永葆活力5月1日,重慶涪陵紅酒小鎮的一家轉轉火鍋店,推出“五一”定制版火鍋免費請游客品嘗。廣西的螺螄粉、貴州的折耳根、湖南臭豆腐、福建烏龍茶、重慶榨菜、河南胡辣湯、陜西老陳醋、海…

internetreadfile讀取數據長度為0_YOLOV3的TensorFlow2.0實現,支持在自己的數據集上訓練...

GitHub鏈接:calmisential/YOLOv3_TensorFlow2?github.com我主要參考了yolov3的一個keras實現版本:qqwweee/keras-yolo3?github.com目前支持在PASCAL VOC 2012數據集上訓練和自定義數據集上訓練,具體的訓練過程可參考項目倉庫中的README文檔…

c語言用鏈表對學生成績排序,學生成績排序和平均分計算利用c語言鏈表的創建插入刪除.doc...

#define NULL 0#define LEN sizeof(struct student)struct student{long num;float score;struct student *next;};int n;struct student *creat(void)//創建鏈表{struct student *head;struct student *p1,*p2;n0;p1p2(struct student*)malloc(LEN);scanf("%ld,%f",…

深井軟巖巷道群支護技術與應用_深井軟巖巷道深淺孔帷幕注漿技術

一、成果內容1.基本原理對失修巷道進行刷擴、支護,滿足使用斷面后進行幫頂噴漿、底板整平,先底板注漿,然后幫、頂注漿。錨架充支護巷道直接底板整平后,先底板后幫、頂注漿。通過全斷面深淺孔聯合注水泥漿進行巷道加固,…

店鋪咨詢系統c語言,課內資源

1 題目介紹1.1 問題描述出于不同目的的旅客對交通工具和交通路徑有不同的要求。例如,因公出差的旅客希望在旅途中的時間盡可能短,出門旅游的游客則期望旅費盡可能省,而老年旅客則要求中轉次數最少。編制一個交通咨詢系統程序,為旅客提供最優決策的交通咨詢。1.2 需求分析提供對…

f分布表完整圖_【教育統計答疑】如何理解正態分布、均值分布、^2分布、t分布和F分布...

許多教育統計的初學者都表示這幾個分布感到學起來非常吃力,結合最近上課的體會以及答疑的情況,覺得很有必要在這里簡單地對這部分內容進行澄清和梳理,以助理解。首先,“為什么要學習這幾個分布”可能是許多人糾結的問題&#xff0…

c語言第一章考試題及答案,C語言考試題庫及答案整理版.doc

C語言考試題庫及答案整理版.docC語言理論上機考試選擇題部分(共200題)1、下面程序的輸出是___D______#includevoid main(){ int k11;printf("k%d,k%o,k%x\n",k,k,k);}A) k11,k12,k11 B) k11,k13,k13C) k11,k013,k0xb D) k11,k13,kb2、在下列選項中,不正確的賦值語句是…

python每天定時9點執行_python每天定時運行某程序代碼

思路:利用time函數返回的時間字符串與指定時間字符串做比較,相等的時候執行對應的操作。不知道大家的思路是什么,感覺這樣比較耗CPU。。。。 此處設置為15:30:10 輸出相應內容,需要執行什么,就修改什么。 import time …

新穎的c語言題目,新穎版c語言經典習題100例(全面面)

新穎版c語言經典習題100例(全面面) (66頁)本資源提供全文預覽,點擊全文預覽即可全文預覽,如果喜歡文檔就下載吧,查找使用更方便哦!19.90 積分實用文檔C語言習題100例(最新整理版)習題目錄:(按住Ctrl點擊可以快速跳轉到…

c語言jt808協議庫,平臺如何應答——關于JT/T808協議

前兩篇也說明了一些應答的相關內容,對于剛接觸的開發者來說恐怕還是不太容易理解,這里專門列舉一個篇幅來講解如何針對終端設備上報的信息進行應答。嚴格來講,如果不應答,終端設備會判別為服務平臺斷開連接,就會重復發…

熊貓的python小課賬號_學習python中的pandas有沒有好的教程推薦?

之前好多人私信我python數據分析怎么快速入門,我在這里直接介紹一下自己的心得經驗吧。 要學習pandas,我并不建議看大量的教程,等看完教程,天都黑了,一覺醒來熱情都涼了。 我的建議是,首先放平心態&#xf…

rssi定位算法 c語言,【論文※】An RSSI Gradient-based AP Localization Algorithm 基于RSSI梯度的AP定位算法...

摘要:Recent rapid rise of indoor location based services for smartphones has further increased the importance of precise localization of Wi-Fi Access Point(AP).However,most existing AP localization algorithms either exhibit high errors or need s…

arm體系結構與編程_教程:如何學習嵌入式系統(基于ARM平臺)

一、嵌入式系統的概念 著重理解“嵌入”的概念 主要從三個方面上來理解。 1、從硬件上,將基于CPU的處圍器件,整合到CPU芯片內部,比如早期基于X86體系結構下的計算機,CPU只是有運算器和累加器的功能,一切芯片要造外部…

ubuntu nfs linux,Ubuntu的NFS功能配置

環境:Ubuntu 10.04步驟:1.sudo apt-get install portmap2.sudo apt-get install nfs-kernel-server注意:第2步我安裝失敗,換源后仍然如此,最后我在新立得里面搜索到nfs-kernel-server,安裝成功3.在更目錄下新建共享目錄:mkdir /forlinux4.gedit /etc/exprots,在后面添加/forlin…

python import 路徑_python import 上級目錄的導入

python import 上級目錄的導入,路徑,上級,文件,目錄,遞歸 python import 上級目錄的導入 易采站長站,站長之家為您整理了python import 上級目錄的導入的相關內容。 有時候我們可能需要import另一個路徑下的python文件,例如下面這個目錄結構,…

一個android工程生成兩個aar,android studio生成aar包并在其他工程引用aar包(示例代碼)...

1.aar包是android studio下打包android工程中src、res、lib后生成的aar文件,aar包導入其他android studio 工程后,其他工程可以方便引用源碼和資源文件2.生成aar包步驟:①.用android studio打開一個工程,然后新建一個Module&#…

python設計一個動物類_我用Python實現了12500張貓狗圖像的精準分類

我用 Python 實現了 12500 張貓狗圖像的精準分類 在這篇文章中,我們將展示如何建立一個深度神經網 絡,能做到以 90% 的精度來對圖像進行分類,而在深度神 經網絡,特別是卷積神經網絡興起之前,這還是一個非常困 難的問題…

android 尺寸變化動畫,Android ScaleAnimation類:尺寸變化動畫類

ScaleAnimation類是Android系統中的尺寸變化動畫類,用于控制View對象的尺寸變化,該類繼承于Animation類。 ScaleAnimation類中的很多方法都與Animation類一致,該類中最常用的方法便是ScaleAnimation構造方法。【基本語法】public ScaleAnimat…