Java API操作MongoDB
文章目录
- 前言
- 一、创建mongodb.properties
- 二、创建MongoUtils.java
- 三、创建测试类testMongo.java
前言
本文介绍了怎样通过javaAPI连接操作MongoDB数据库。
一、创建mongodb.properties
首先要创建一个maven或者springboot项目可以用来做简单的连接测试。
1.导入必要的jar包依赖
<dependencies><!--单元测试依赖--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!--java操作mongodb的驱动依赖--><dependency><groupId>org.mongodb</groupId><artifactId>mongo-java-driver</artifactId><version>3.12.1</version></dependency></dependencies>
2.在resource文件夹下建立一个mongdb.propeties文件,并且写上数据库相关配置。
文件上写入如下内容,这里的dbname根据自己有的来写。
host = localhost
port = 27017
dbname = recommender
二、创建MongoUtils.java
在src\main\java下面创建一个com.itcast.mongodb的文件夹。当然这里想怎么命名随意。然后编写MongoUtils.java代码
package com.itcast.mongodb;import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoDatabase;import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;public class MongoUtils {private static Properties properties;private static MongoDatabase mongoDatabase;private static String host;private static int port;private static InputStream stream = null ;private static String dbname;//创建一个静态代码块,用于初始化工具类中的静态变量,该静态代码块在类的加载过程中初始化阶段执行而且只执行一次static{if (properties == null){//判断properties对象是否为空,空则new一个出来properties = new Properties();}try {//创建字节流输入对象用来接受配置文件中的参数stream = MongoUtils.class.getClassLoader().getResourceAsStream("mongodb.properties");properties.load(stream);} catch (IOException e) {e.printStackTrace();}host = properties.getProperty("host");port = Integer.parseInt(properties.getProperty("port"));dbname = properties.getProperty("dbname");System.out.println(dbname);}//定义一个getMongoClient方法,用来获取数据库连接对象public static com.mongodb.client.MongoClient getMongoClient(){String addr = "mongodb://"+host+":"+port;return MongoClients.create(addr);}//定义一个getMongoConn方法,用来实现连接指定的mongo数据库public static MongoDatabase getMongoConn(){MongoClient mongoClient = getMongoClient();mongoDatabase = mongoClient.getDatabase(dbname);return mongoDatabase;}}
三、创建测试类testMongo.java
这里包含了java对mongo进行增删改查的操作。
import com.itcast.mongodb.MongoUtils;
import com.mongodb.client.*;
import com.mongodb.client.model.Filters;
import org.bson.Document;
import org.junit.Test;
import org.omg.CORBA.PUBLIC_MEMBER;public class TestMongo {private static MongoDatabase mongoDatabase;public static void main(String[] args) {mongoDatabase = MongoUtils.getMongoConn();}@Testpublic void getDBS(){ //查看数据库MongoClient mongoClient = MongoUtils.getMongoClient();MongoIterable<String> databaseNames = mongoClient.listDatabaseNames();for (String databaseName : databaseNames){System.out.println(databaseName);}}@Testpublic void getCollections(){ //查看集合mongoDatabase = MongoUtils.getMongoConn();MongoIterable<String> listCollectionNames = mongoDatabase.listCollectionNames();for (String listCollectionName:listCollectionNames){System.out.println(listCollectionName.toString());}}@Testpublic void createCollections(){ //创建集合mongoDatabase = MongoUtils.getMongoConn();mongoDatabase.createCollection("itcast");}@Testpublic void dropCollections(){ //删除集合mongoDatabase = MongoUtils.getMongoConn();MongoCollection<Document> itcast = mongoDatabase.getCollection("itcast");itcast.drop();}@Testpublic void findDocument(){ //查看文档mongoDatabase = MongoUtils.getMongoConn();MongoCollection<Document> document = mongoDatabase.getCollection("Movie");FindIterable<Document> documents = document.find();for (Document document1 : documents){System.out.println(document1);}}@Testpublic void insertDocument(){ //插入文档mongoDatabase = MongoUtils.getMongoConn();MongoCollection<Document> itcast = mongoDatabase.getCollection("itcast");Document document = new Document("_id", "7").append("articledid", "1000007").append("content", "吃饭前好好洗手").append("userid", "01").append("phone", "133336997320");itcast.insertOne(document);}@Testpublic void updateDocument(){ //更新文档mongoDatabase = MongoUtils.getMongoConn();MongoCollection<Document> itcast = mongoDatabase.getCollection("itcast");Document document = new Document("content", "这是一封信"); //需要更新的内容itcast.updateOne(Filters.eq("content","这是一封充满感谢的信"),new Document("$set",document));//筛选出content为这是一封充满感谢的信的内容进行替换更新}public void deleteDocument(){ //删除文档mongoDatabase = MongoUtils.getMongoConn();MongoCollection<Document> itcast = mongoDatabase.getCollection("itcast");itcast.deleteOne(Filters.eq("_id","7"));}}
Java API操作MongoDB相关推荐
- MongoDB Java API操作很全的整理以及共享分片模式下的常见操作整理
MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...
- java api 操作helm
文章目录 java api 操作helm 一.helm架构在云管理平台开发中的不足 二.captain介绍 安装captain 卸载captain chart repo问题 三.命令行安装mongod ...
- 2021年大数据ZooKeeper(五):ZooKeeper Java API操作
目录 ZooKeeper Java API操作 引入maven坐标 节点的操作 ZooKeeper Java API操作 这里操作Zookeeper的JavaAPI使用的是一套zookeeper客户端 ...
- Kafka系列三 java API操作
使用java API操作kafka 1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...
- Hadoop详解(四):HDFS shell操作和Java API操作
1. HDFS环境准备 1.1 HDFS的格式化与启动 HDFS配置完之后就可以对其进行格式化操作.在NameNode所在机器上执行如下命令进行HDFS的格式化操作: hadoop namenode ...
- Windows下使用Java API操作HDFS的常用方法
场景 Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/det ...
- Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS
场景 HDFS的访问方式之HDFS shell的常用命令: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119351218 在上 ...
- 使用 Java API 操作 HBase
使用 Java API 操作 HBase 数据库,就类似HBase Shell,本质上一个是Java 代码,一个是Shell 命令.(hadoop 的文件系统莫不如此,可用Java API 的方式操作 ...
- Hbase java API操作(模板代码)
Hbase java API操作 1 创建maven工程 导入jar包 <repositories><repository><id>cloudera</id& ...
最新文章
- Nature封面:脑机接口重大突破!意念手写字速度破纪录!
- Android 浏览器 —— 使用 WebView 实现文件下载
- mybatis学习2之ResultMap结果集映射
- 7.6~7.20集训总结(一)
- .Net Core上用于代替System.Drawing的类库
- python编程入门课_程序设计入门—Python
- (王道408考研操作系统)第四章文件管理-第一节5:文件存储空间管理
- Kaggle官网免费课程:从Python到机器学习,4小时学完一门,48小时掌握数据科学...
- activity 、window与view的关系 (上)
- navicate备份与还原数据库
- 取消计算机触摸板,笔记本电脑触摸板如何打开和关闭
- 763-GMAX3809 1.1” 900万分辨率全局快门CMOS图像传感器
- pdf转换成jpg python_怎样利用python将pdf转换成jpg格式
- Rxjava中的Hot Observable 和 Cold Observable
- 银行的SWIFT CODE 和 IBAN CODE 和 ABA CODE 分别是什么意思
- 5.larval 验证规则
- 关于dell戴尔笔记本磁盘空间莫名被占及删除System Volume Information
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后
- iPad air 1 7.1.2升级IOS 11
- golang errors