Java API操作MongoDB
本文介绍了怎样通过javaAPI连接操作MongoDB数据库。
·
前言
本文介绍了怎样通过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();
}
@Test
public void getDBS(){ //查看数据库
MongoClient mongoClient = MongoUtils.getMongoClient();
MongoIterable<String> databaseNames = mongoClient.listDatabaseNames();
for (String databaseName : databaseNames){
System.out.println(databaseName);
}
}
@Test
public void getCollections(){ //查看集合
mongoDatabase = MongoUtils.getMongoConn();
MongoIterable<String> listCollectionNames = mongoDatabase.listCollectionNames();
for (String listCollectionName:listCollectionNames){
System.out.println(listCollectionName.toString());
}
}
@Test
public void createCollections(){ //创建集合
mongoDatabase = MongoUtils.getMongoConn();
mongoDatabase.createCollection("itcast");
}
@Test
public void dropCollections(){ //删除集合
mongoDatabase = MongoUtils.getMongoConn();
MongoCollection<Document> itcast = mongoDatabase.getCollection("itcast");
itcast.drop();
}
@Test
public void findDocument(){ //查看文档
mongoDatabase = MongoUtils.getMongoConn();
MongoCollection<Document> document = mongoDatabase.getCollection("Movie");
FindIterable<Document> documents = document.find();
for (Document document1 : documents){
System.out.println(document1);
}
}
@Test
public 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);
}
@Test
public 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"));
}
}
更多推荐
已为社区贡献3条内容
所有评论(0)