一、安装MongoDB驱动
在maven项目pom.xml文件中添加以下代码注入依赖:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.12.7</version>
</dependency>
二、创建如下所示的test数据库和stu集合
三、创建javamongodb包和 MongoDBUtil客户端访问类
package javamongodb;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import java.util.logging.Level;
import java.util.logging.Logger;
public class MongoDBUtil {
// 设置服务器地址和端口号
public static String host = "localhost";
public static int port = 27017;
// 当类被加载时,静态代码块只执行一次,此处的作用是为了提高日志输出级别,减少日志输出
static {
Logger mongoLogger = Logger.getLogger("org.mongodb.driver");
mongoLogger.setLevel(Level.SEVERE);
}
// 获取Mongo客户端
public static MongoClient getMongoClient() {
MongoClient mClient = null;
try {
mClient = new MongoClient(host, port);
System.out.println("连接成功!");
} catch (Exception e) {
e.printStackTrace();
}
return mClient;
}
// 关闭mongo客户端
public static void closeMongoClient(MongoClient mClient) {
try {
if (mClient != null) {
mClient.close();
System.out.println("释放资源!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 获取数据库中的集合
public static MongoCollection<Document> getCol(MongoClient mClient, String dbName, String colName) {
MongoCollection<Document> col = null;
try {
MongoDatabase db = mClient.getDatabase(dbName);
col = db.getCollection(colName);
} catch (Exception e) {
System.out.println("集合获取失败:" + e.getMessage());
}
return col;
}
}
四、创建mongo工具类MongoDBTools
package javamongodb;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.model.Filters;
import org.bson.Document;
import org.bson.conversions.Bson;
import java.util.ArrayList;
public class MongoDBTools {
public void insertOne(String name, String sex, int score) {
MongoClient mClient = null;
try {
mClient = MongoDBUtil.getMongoClient();
MongoCollection<Document> collection = MongoDBUtil.getCol(mClient, "test", "stu");
Document doc = new Document("name", name).append("sex", sex).append("score", score);
collection.insertOne(doc);
System.out.println("文档添加成功!");
} catch (Exception e) {
System.out.println("文档添加失败:" + e.getMessage());
} finally {
MongoDBUtil.closeMongoClient(mClient);
}
}
public void deleteByName(String name) {
MongoClient mClient = null;
try {
mClient = MongoDBUtil.getMongoClient();
MongoCollection<Document> collection = MongoDBUtil.getCol(mClient, "test", "stu");
Bson filter = Filters.eq("name", name);
collection.deleteMany(filter);
System.out.println("文档删除成功!");
} catch (Exception e) {
System.out.println("文档删除失败:" + e.getMessage());
} finally {
MongoDBUtil.closeMongoClient(mClient);
}
}
public void updateByName(String name, String updatedName, String sex, int score) {
MongoClient mClient = null;
try {
mClient = MongoDBUtil.getMongoClient();
MongoCollection<Document> collection = MongoDBUtil.getCol(mClient, "test", "stu");
Bson filer = Filters.eq("name", name);
Document doc = new Document("name", updatedName).append("sex", sex).append("score", score);
collection.replaceOne(filer, doc);
System.out.println("文档更新成功!");
} catch (Exception e) {
System.out.println("文档更新失败:" + e.getMessage());
} finally {
MongoDBUtil.closeMongoClient(mClient);
}
}
public ArrayList<Document> findByName(String name) {
MongoClient mClient = null;
ArrayList<Document> arrLst = new ArrayList<>();
try {
mClient = MongoDBUtil.getMongoClient();
MongoCollection<Document> collection = MongoDBUtil.getCol(mClient, "test", "stu");
Bson filter = Filters.eq("name", name);
FindIterable<Document> iterable = collection.find(filter);
for (Document document : iterable) {
arrLst.add(document);
}
System.out.println("文档查找成功!");
} catch (Exception e) {
System.out.println("文档查找失败:" + e.getMessage());
} finally {
MongoDBUtil.closeMongoClient(mClient);
}
return arrLst;
}
}
五、创建测试类TestMongoDBTools
1、测试MongoDBTools类insertOne方法:
2、测试MongoDBTools类deleteByName方法
3、测试MongoDBTools类updateByName方法
4、测试MongoDBTools类findByName方法