日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring Boot集成mongodb數據庫過程解析

瀏覽:244日期:2023-09-05 14:05:35

一.認識mongodb

MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。它支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。

二.Spring boot項目集成mongodb

1.添加mongodb依賴

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>

2.配置mongodb的連接

spring:data:mongodb:#uri: mongodb://localhost:27017/data_explorationuri: mongodb://root:dhcc-mongodb@192.168.100.87:27017/data_exploration?authSource=admin&authMechanism=SCRAM-SHA-1

解析:以上uri分別代表本地配置和遠程連接

3.操作數據庫

(1)保存

@Repositorypublic class ExplorationJobDao { @Autowired MongoTemplate mongoTemplate; public void save(ExplorationJob explorationJob) { mongoTemplate.save(explorationJob); }}

(2)根據ID修改一條數據(其原理先符合ID的數據,然后刪除查詢結果的第一條)

public void updateExecutionStatusById(int executionStatus, String jobId) { Query query = new Query(Criteria.where('jobId').is(jobId)); Update update = new Update().set('executionStatus', executionStatus); mongoTemplate.updateFirst(query, update, ExplorationJob.class); }

(3)根據條修改多條數據(查詢符合ID的所有數據,然后將所有數據修改)

public void update(BusinessExploration businessExploration) { Query query = new Query(Criteria.where('_id').is(businessExploration.getId())); Update update = new Update().set('sourceUnit', businessExploration.getSourceUnit()).set('appSystem', businessExploration.getAppSystem()).set('businessImplication', businessExploration.getBusinessImplication()).set('safetyRequire', businessExploration.getSafetyRequire()); mongoTemplate.updateMulti(query, update, TableExploration.class); }

(4)刪除(根據ID刪除)

public void delExplorationJobById(String jobId) { Query query=new Query(Criteria.where('jobId').is(jobId)); mongoTemplate.remove(query,ExplorationJob.class); }

(5)根據條件查詢(根據ID查詢)

public ExplorationJob getExplorationJobByJobId(String jobId) { Query query = new Query(Criteria.where('jobId').is(jobId)); ExplorationJob explorationJob = mongoTemplate.findOne(query, ExplorationJob.class); return explorationJob; }

(6)查詢所有

mongoTemplate.findAll(TableExploration.class);

(7)多條件動態查詢

public List<ExplorationJob> getExplorationByCondition(ExplorationJob explorationJob) { Query query = new Query(); if (explorationJob.getJobName() != null) { Pattern pattern = Pattern.compile('^.*' + explorationJob.getJobName() + '.*$', Pattern.CASE_INSENSITIVE); query.addCriteria(Criteria.where('jobName').regex(pattern)); } if (explorationJob.getDsType() != null) { query.addCriteria(Criteria.where('dsType').is(explorationJob.getDsType())); } if (explorationJob.getExecutionStatus() != null) { query.addCriteria(Criteria.where('executionStatus').lte(explorationJob.getExecutionStatus())); } List<ExplorationJob> explorationJobs=mongoTemplate.find(query, ExplorationJob.class); return explorationJobs; }

(8)查詢最大值

public Date getMaxExplorationDate(String tableName) { FindIterable<Document> iterable = mongoTemplate.getCollection('tableExploration').find(new BasicDBObject('tableName', tableName)).sort(new BasicDBObject('explorationDate', -1)).skip(0).limit(1); Document doc =null; if (getDocuments(iterable).size()>0) { doc=getDocuments(iterable).get(0); Date date = doc.getDate('explorationDate'); return date; }else { return null; } } /** * 工具方法 * * @param iterable * @return */ public static List<Document> getDocuments(FindIterable<Document> iterable) { List<Document> results = new ArrayList<Document>(); if (null != iterable) { MongoCursor<Document> cursor = iterable.iterator(); Document doc = null; while (cursor.hasNext()) {doc = cursor.next();results.add(doc); } } return results; }

(9)分組查詢(這里還是用到了排序)

public List<TableExploration> getAllTableExplorationGroupByTableName(String jobId){ Aggregation aggregation = Aggregation.newAggregation(Aggregation.match(Criteria.where('jobId').is(jobId)),Aggregation.sort(new Sort(Direction.DESC,'explorationDate')),Aggregation.group('tableName').first('_id').as('tableName').first('databaseType').as('databaseType').first('databaseName').as('databaseName').first('networkSituation').as('networkSituation').first('userName').as('userName').first('password').as('password').first('url').as('url').first('dataStorage').as('dataStorage').first('dataIncrement').as('dataIncrement').first('explorationDate').as('explorationDate')//.push('columnExplorations').as('columnExplorations').first('jobId').as('jobId')); AggregationResults<TableExploration> aggregationResults= mongoTemplate.aggregate(aggregation, 'tableExploration', TableExploration.class); List<TableExploration> tableExplorations=aggregationResults.getMappedResults(); return tableExplorations;

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品诱惑一区?区三区| 久久精品动漫| 久久婷婷亚洲| 91欧美日韩| 日韩不卡在线| 91精品国产调教在线观看| 精品日韩在线| 久久久久久网| 久久青草久久| 亚洲午夜精品久久久久久app| 99精品国产一区二区三区| 欧美一区二区三区高清视频 | 99视频精品免费观看| 日韩亚洲在线| 亚洲精品一级| 日本欧美韩国一区三区| 国产精品一区高清| 天堂av在线| 欧美日韩亚洲在线观看| 免费日韩精品中文字幕视频在线| 日韩精品一卡二卡三卡四卡无卡| 蜜桃一区二区三区在线| 日韩精品一区二区三区中文字幕| 国产一精品一av一免费爽爽| 狂野欧美性猛交xxxx| 桃色av一区二区| 中文精品在线| 欧美亚洲专区| 福利一区在线| 亚洲欧美日韩高清在线| 亚洲精品乱码久久久久久蜜桃麻豆| 国产调教精品| 91精品精品| 蜜桃av一区二区| 久久精品资源| 成人av二区| 日韩精品免费观看视频| 国产一区二区三区四区大秀| 欧美天堂亚洲电影院在线观看| 青青伊人久久| 久久精品1区| 日韩综合一区二区| 国产一区二区视频在线看| 亚洲女同中文字幕| 国产亚洲字幕| 99久久久久国产精品| 亚洲日本在线观看视频| 精品国产亚洲日本| 好看的av在线不卡观看| 国产精品麻豆成人av电影艾秋| 88xx成人免费观看视频库| 一区二区精彩视频| 水蜜桃精品av一区二区| 婷婷精品在线| 日本美女一区| 日本色综合中文字幕| 久久精品导航| 国产精品嫩草影院在线看| 99在线|亚洲一区二区| 久久影院资源站| 免费在线观看日韩欧美| 国产不卡精品在线| 亚洲免费专区| 亚洲精品永久免费视频| 日韩成人午夜精品| 婷婷亚洲综合| 成人免费一区| 欧美日韩亚洲国产精品| 亚洲经典在线| 亚洲一级少妇| 国产精品观看| 丝袜亚洲精品中文字幕一区| 日本一二区不卡| 欧美一级网址| 亚洲一卡久久| 日本精品影院| 久久99高清| 欧美日韩伊人| 欧美日韩色图| 日韩av在线中文字幕| 97se亚洲| 在线观看亚洲精品福利片| 九九精品调教| 久久一区精品| 欧美亚洲二区| 亚洲精品九九| 视频一区在线视频| 国产一在线精品一区在线观看| 国产不卡一区| 欧美成a人片免费观看久久五月天| 久久亚洲风情| 性欧美69xoxoxoxo| 97精品一区| 国产精品美女在线观看直播| 中文不卡在线| 黄色国产精品| 久久久一二三| www.com.cn成人| 激情不卡一区二区三区视频在线| 日韩二区三区四区| 日韩视频1区| 蜜桃视频在线观看一区| 日韩视频一区二区三区在线播放免费观看| 日韩黄色大片| 成人av三级| 国产自产自拍视频在线观看| 精品99久久| 丁香婷婷久久| 老司机免费视频一区二区| 国产精品视频一区二区三区 | 视频一区在线视频| 欧美在线亚洲综合一区| 久久亚洲成人| 国产99精品| 亚洲福利一区| 亚洲午夜一级| 91精品福利| 婷婷国产精品| 婷婷激情图片久久| 欧美日韩国产探花| 亚洲欧美日韩在线观看a三区| 午夜日韩av| 亚洲综合二区| 丝袜美腿高跟呻吟高潮一区| 欧美日韩一区二区三区视频播放| 激情欧美丁香| 鲁大师成人一区二区三区| 午夜精品一区二区三区国产| 亚洲大全视频| 国产毛片一区| 蜜臀久久99精品久久久久宅男| 中文字幕免费精品| 日韩欧美另类中文字幕| 日本电影久久久| 国产精品99精品一区二区三区∴| 国产精品v日韩精品v欧美精品网站| 国产精品一级| 成人亚洲精品| 国产综合视频| 99国内精品| 日韩精品一页| 欧美极品中文字幕| 日韩理论片av| 在线综合亚洲| 日韩一二三区在线观看| 国产乱码精品一区二区三区四区| 久久99影视| 国产不卡av一区二区| 精品亚洲a∨| 亚洲福利一区| 久久中文精品| 美女免费视频一区| 国产在线不卡一区二区三区| 日韩a一区二区| 欧美日韩黑人| 蜜桃一区二区三区在线观看| 日本欧美大码aⅴ在线播放| 欧美激情aⅴ一区二区三区| 日韩中文影院| 久久av在线| 国产精品sm| 国产麻豆久久| 欧美午夜不卡| 日韩高清国产一区在线| 国产一区丝袜| 91精品成人| 国产调教一区二区三区| 国产乱码午夜在线视频| 亚洲欧美网站| 另类综合日韩欧美亚洲| 蜜桃成人av| 日韩国产一二三区| 欧美黄色网页| 丝袜国产日韩另类美女| 国产欧美日本| 99成人在线视频| 亚洲开心激情| 你懂的亚洲视频| 国产综合欧美| 国产剧情一区二区在线观看| 亚洲视频综合| 国产精品久一| 日韩视频一区| 丁香婷婷久久| 亚洲网址在线观看| 一区二区三区四区精品视频| 欧美日韩国产在线一区| 蜜桃视频一区二区三区在线观看| 青青国产精品| 日韩另类视频| 日韩av在线免费观看不卡| 久草免费在线视频| 亚洲1区在线观看| 国产欧美一区二区精品久久久| 国产91久久精品一区二区| 久久精品 人人爱| 91精品二区| 精品视频在线观看网站| 亚洲欧美日韩精品一区二区| 精品国产美女a久久9999|