日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在JAVA中使用MongoDB

發布時間:2025/7/14 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在JAVA中使用MongoDB 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

首先,下載mongdb對JAVA的支持,點擊這里下載驅動包,這里博主下載的是2.10.1版。

mongdb版本為2.4.9

在項目中導入該驅動包。

打開shell,在終端輸入mongo,顯示如下


只有默認的三個數據庫。

新建一個java project

代碼如下,

1.操控mongdb連接,使用MongoOptions來設置一些參數。

package?Util;import?java.net.UnknownHostException;import?com.mongodb.DB; import?com.mongodb.Mongo; import?com.mongodb.MongoOptions;//數據庫工具類 public?class?MongoDBUtil?{private?static?Mongo?mongo?=?null;private?static?String?DBString?=?"MongoDBTest";//數據庫名private?static?String?hostName?=?"localhost";//主機名private?static?int?port?=?27017;//端口號private?static?int?poolSize?=?10;//連接池大小private?MongoDBUtil(){}//獲取數據庫連接public?static?DB?getDB(){if(mongo?==?null){init();}return?mongo.getDB(DBString);}//初始化數據庫private?static?void?init(){try?{//實例化Mongomongo?=?new?Mongo(hostName,?port);MongoOptions?opt?=?mongo.getMongoOptions();//設置連接池大小opt.connectionsPerHost?=?poolSize;}?catch?(UnknownHostException?e)?{//?TODO?Auto-generated?catch?blocke.printStackTrace();}} }



2.基本操作接口

package?DAO;import?java.util.List;import?com.mongodb.BasicDBObject;//數據庫CRUD基本操作 public?interface?BaseDAO?{public?boolean?insert(String?collectionName,?BasicDBObject?bean);public?boolean?delete(String?collectionName,?BasicDBObject?bean);public?List?find(String?collectionName,?BasicDBObject?bean);public?boolean?update(String?collectionName,?BasicDBObject?oldBean,?BasicDBObject?newBean);}

3.基本操作實現

package?DAO.Impl;import?java.util.List;import?com.mongodb.BasicDBObject; import?com.mongodb.DB;import?Util.MongoDBUtil; import?DAO.BaseDAO;//數據庫基本操作實現 public?class?BaseDAOImpl?implements?BaseDAO?{@Overridepublic?boolean?insert(String?collectionName,?BasicDBObject?bean)?{DB?db?=?MongoDBUtil.getDB();db.getCollection(collectionName).insert(bean);return?false;}@Overridepublic?boolean?delete(String?collectionName,?BasicDBObject?bean)?{DB?db?=?MongoDBUtil.getDB();db.getCollection(collectionName).remove(bean);return?false;}@Overridepublic?List?find(String?collectionName,?BasicDBObject?bean)?{DB?db?=?MongoDBUtil.getDB();List?list?=?db.getCollection(collectionName).find(bean).toArray();return?list?;}@Overridepublic?boolean?update(String?collectionName,?BasicDBObject?oldBean,?BasicDBObject?newBean)?{DB?db?=?MongoDBUtil.getDB();db.getCollection(collectionName).update(oldBean,?newBean);return?false;}}

4.基本操作測試

4.1添加文檔操作

????????BaseDAOImpl?baseDAOImpl?=?new?BaseDAOImpl();BasicDBObject?beanOne?=?new?BasicDBObject();beanOne.put("name",?"kakakaka");beanOne.put("sex",?"男");beanOne.put("age",?20);baseDAOImpl.insert("test",?beanOne);

執行后結果

可以看到mongdb會自動檢測是否存在數據庫MongoDBTest,如果不存在則新建一個,然后再檢測是否存在文檔集合test,如果不存在則新建一個,最后插入數據。

4.2查詢文檔操作 ????

????????List<BasicDBObject>?list?=?baseDAOImpl.find("test",?new?BasicDBObject("name",?"kakakaka"));for(BasicDBObject?i?:?list){System.out.println(i.get("name"));System.out.println(i.get("sex"));System.out.println(i.get("age"));}

輸出結果如下

kakakaka 男 20

4.3修改文檔操作如下

????????BasicDBObject?oldBean?=?(BasicDBObject)?baseDAOImpl.find("test",?new?BasicDBObject("name",?"kakakaka")).get(0);BasicDBObject?newBean?=?(BasicDBObject)?oldBean.clone();newBean.put("name",?"gugugugu");System.out.println(oldBean.get("name"));System.out.println(newBean.get("name"));baseDAOImpl.update("test",?oldBean,?newBean);

控制臺輸出結果

kakakaka gugugugu


4.4刪除文檔

先再向數據庫插入一條數據

注意,mongdb區分一個文檔中的不同數據是依賴它自己向每條數據中賦的"_id"

所以再插入這樣一條數據

????????BaseDAOImpl?baseDAOImpl?=?new?BaseDAOImpl();BasicDBObject?beanOne?=?new?BasicDBObject();beanOne.put("name",?"gugugugu");beanOne.put("sex",?"男");beanOne.put("age",?20);baseDAOImpl.insert("test",?beanOne);

結果如下

執行刪除操作

首先根據"_id"將文檔中第二條數據修改

????????baseDAOImpl.update("test",?new?BasicDBObject("_id",?new?ObjectId("5471c9db44aeeb8b5524f2ea")),?new?BasicDBObject("name","kakakaka").append("age",?20));

結果如下


將"name" 等于 "kakakaka"的數據刪除

????????baseDAOImpl.delete("test",?new?BasicDBObject("name","kakakaka"));

5.模糊搜索

使用正則表達式根據關鍵字key對數據庫相應屬性進行模糊搜索,

????????String?key?=?"a";Pattern?pattern?=?Pattern.compile("^.*"?+?key?+?".*$",?Pattern.CASE_INSENSITIVE);DB?db?=?MongoDBUtil.getDB();List?list?=??db.getCollection("test").find(new?BasicDBObject("name",?pattern)).toArray();for(int?i?=?0;?i?<?list.size();i++){System.out.println(list.get(i));}

數據庫內部的內容

輸出結果

{?"_id"?:?{?"$oid"?:?"547ebfc744aefdcc5fe90bce"}?,?"name"?:?"kakakaka"?,?"sex"?:?"男"?,?"age"?:?20}


轉載于:https://my.oschina.net/kakakaka/blog/347954

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的在JAVA中使用MongoDB的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。