欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA操作MongoDB數據庫實例教程

 更新時間:2023年05月25日 11:41:32   作者:快去吃姜  
MongoDB是一個文檔型數據庫,是NOSQL家族中最重要的成員之一,下面這篇文章主要給大家介紹了關于JAVA操作MongoDB數據庫的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

前言:

mongodb是一個基于分布式文件存儲的開源數據庫系統(tǒng)。

mongodb與我們平常使用的mysql的區(qū)別:

   1.MySQL以表結構存儲數據,mongodb以類JSON的文檔的格式存儲

   2.MySQL支持表聯(lián)查,mongodb不支持表聯(lián)查。

   3.MySQL是關系型數據庫,而mongodb是非關系型數據庫

   4.MySQL可以支持事務,外鍵等,而mongodb不支持

mysql中的概念MongoDB中的概念解釋tablecollention表/集合rowdocument行/文檔columnfield字段indexindex索引primary keyprimary key主鍵,mongo中每個documentdou默認有_id字段為主鍵

一.java鏈接mongodb

1.導入mongodb驅動包

2.創(chuàng)建鏈接對象

MongoClient mongoclient=new MongoClient("127.0.0.1",27017);

3.釋放資源

mongoclient.close();

二.查看數據庫的所有庫和集合

1.查看所有庫名

//獲取鏈接對象,參數1為url,參數2為端口號
MongoClient mongoclient=new MongoClient("127.0.0.1",27017);
//獲取所有庫名的迭代器
MongoIterable<String> list= mongoclient.listDatebaseNames();
for(String str:list){
    System.out.println(str);//查看所有庫名
}

2.查看所有集合名

//獲取鏈接對象,參數1為url,參數2為端口號
MongoClient mongoclient=new MongoClient("127.0.0.1",27017);
//獲取庫對象,參數為庫名
MongoDatabase db=mongoclient.getDatabase("school");
//獲取當前庫對象的所有集合名的迭代器
MongoIterable<String> list=db.getlistCollectionNames();
for(String str:list){
    System.out.println(str);//獲取所有集合名
}
//獲取集合對象,參數為集合名
MongoCollention<Document> collection=db.getCollection("student");

三.對數據庫進行增刪改查

1.新增數據

//獲取集合對象
MongoCollection<Document> collection = db.getCollection("student");
//新增時創(chuàng)建一個Docuement對象,以鍵值對的形式傳入內容
Document document = new Document();
document.put("name", "張三");
document.put("age", 99);
document.put("sex", "男");
//添加一條數據,沒有返回值
collection.insertOne(document);
//新增多條數據,傳入一個document集合
collection.insertMany(null);

Filters類(過濾器) 

        刪除,修改,查詢時傳入的篩選條件

        舉例: Bson eq=Filters.eq("name","張三");

Filters.eq()等值
Filters.gt()大于指定值(gte大于等于)
Filters.lt()小于指定值(lte小于等于)
Filters.ne()不等于指定
Filters.nin()不等于數組中的值
Filters.and()傳入多個Bson對象,and連接
Filters.regex()模糊查詢
Filters.exists()存在改字段

2.修改數據

 
//修改條件
Bson eq = Filters.eq("name","張三");
//修改匹配到的第一條
UpdateResult updateOne = collection.updateOne(
	eq, new Document("$set",new Document("age",50)));
//修改匹配的多條
collection.updateMany(eq, null);

修改的返回值內容

AcknowledgedUpdateResult{matchedCount=0, modifiedCount=0, upsertedId=null}

matchedCount:代表匹配到的文檔數

modifiedCount:代表被修改的文檔數

upsertedId:代表修改的文檔id(主鍵)

3.數據刪除

//條件
Bson eq = Filters.eq("name","張三");
//刪除一條符合的
DeleteResult deleteOne = collection.deleteOne(eq);
//刪除 所有符合條件的
DeleteResult deleteMany = collection.deleteMany(eq);

刪除的返回值內容

AcknowledgedDeleteResult{deletedCount=0}

deletedCount:被刪除的文檔數

4.查詢數據

//無條件全查
FindIterable<Document> find = collection.find();
//帶條件查詢
Bson eq = Filters.regex("name", "張");
FindIterable<Document> find = collection.find(eq);

查詢的結果集映射

 這種解析方式我們必須知道文檔中的各個字段名

//全查
FindIterable<Document> find = collection.find();
//創(chuàng)建一個實體類集合準備接收結果
List<Student>  slist = new ArrayList<Student>();
//獲取結果集迭代器對象	
MongoCursor<Document> iterator = find.iterator();
while(iterator.hasNext()) {
	Student s =  new Student();
	Document next = iterator.next();
	s.setSname(next.getString("name"));
	s.setSsex(next.getString("sex"));
	s.setSid(next.getInteger("sid"));	
    //將結果添加至實體類集合
	slist.add(s);
}

總結

到此這篇關于JAVA操作MongoDB數據庫的文章就介紹到這了,更多相關JAVA操作MongoDB數據庫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java 如何將圖片按照原尺寸比例存入word中

    java 如何將圖片按照原尺寸比例存入word中

    這篇文章主要介紹了java 如何將圖片按照原尺寸比例存入word中的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java中的StringTokenizer實現(xiàn)字符串切割詳解

    Java中的StringTokenizer實現(xiàn)字符串切割詳解

    這篇文章主要介紹了Java中的StringTokenizer實現(xiàn)字符串切割詳解,java.util工具包提供了字符串切割的工具類StringTokenizer,Spring等常見框架的字符串工具類(如Spring的StringUtils),需要的朋友可以參考下
    2024-01-01
  • 分析Java中為什么String不可變

    分析Java中為什么String不可變

    Java中為什么String是不可變性的。今天我們從多角度解析為什么Java把String做成不可變的。
    2021-06-06
  • spring實現(xiàn)bean對象創(chuàng)建代碼詳解

    spring實現(xiàn)bean對象創(chuàng)建代碼詳解

    這篇文章主要介紹了spring實現(xiàn)bean對象創(chuàng)建代碼詳解,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12
  • 使用MyBatis攔截器實現(xiàn)sql查詢權限動態(tài)修改代碼實例

    使用MyBatis攔截器實現(xiàn)sql查詢權限動態(tài)修改代碼實例

    這篇文章主要介紹了使用MyBatis攔截器實現(xiàn)sql查詢權限動態(tài)修改代碼實例,為了不耦合,現(xiàn)在的方案是在需要鑒權的Mybatis?Mapper方法上增加一個注解,在運行過程中判斷該注解存在即對sql進行修改,需要的朋友可以參考下
    2023-08-08
  • 如何在MyBatis中實現(xiàn)DataSource

    如何在MyBatis中實現(xiàn)DataSource

    今天給大家整理了如何在MyBatis中實現(xiàn)DataSource,文中有非常詳細的代碼示例,對正在學習java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • SpringBoot中間件ORM框架實現(xiàn)案例詳解(Mybatis)

    SpringBoot中間件ORM框架實現(xiàn)案例詳解(Mybatis)

    這篇文章主要介紹了SpringBoot中間件ORM框架實現(xiàn)案例詳解(Mybatis),本篇文章提煉出mybatis最經典、最精簡、最核心的代碼設計,來實現(xiàn)一個mini-mybatis,從而熟悉并掌握ORM框架的涉及實現(xiàn),需要的朋友可以參考下
    2023-07-07
  • Kotlin基礎教程之Run,標簽Label,函數Function-Type

    Kotlin基礎教程之Run,標簽Label,函數Function-Type

    這篇文章主要介紹了Kotlin基礎教程之Run,標簽Label,函數Function-Type的相關資料,需要的朋友可以參考下
    2017-05-05
  • 在java中使用dom4j解析xml(示例代碼)

    在java中使用dom4j解析xml(示例代碼)

    鑒于目前的趨勢,我們這里來講講Dom4j的基本用法,不涉及遞歸等復雜操作。Dom4j的用法很多,官網上的示例有那么點兒晦澀,這里就不寫了
    2013-10-10
  • 在SpringBoot中更改默認端口的方法總結

    在SpringBoot中更改默認端口的方法總結

    在本文中,小編將帶大家學習如何在 Spring Boot 中更改默認端口,默認情況下,嵌入式 Web 服務器使用 8080端口來啟動 Spring 引導應用程序,有幾種方法可以更改該端口,文中介紹的非常詳細,需要的朋友可以參考下
    2023-07-07

最新評論