任务描述
任务名称 | Mongodb基本操作 |
---|---|
任务要求 | 1、熟练掌握安装和配置MongoDB数据库2、掌握数据库、集合和文档概念3、学会如何创建数据库、删除数据库4、学会集合的基本操作5、学会文档的基本操作 |
任务内容 | 1、Java语言操作MongoDB数据库;2、获取MongoDB中的所有数据库;3、查看指定数据库(即数据库articledb)中的所有集合;4、创建集合;5、删除集合;6、查看文档;7、插入一个文档;8、更新文档;9、删除文档 |
提交内容 | 实践操作 |
任务准备
- 安装和配置好Mongdb数据库
- 熟练Mongodb基本操作
- 有一定的Java基础
- 熟悉Maven项目管理工具
任务实施
1、新建一个Maven工程
打开pom.xml文件,添加依赖:junit和mongodb的java驱动
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.12version>
<scope>testscope>
dependency>
<dependency>
<groupId>org.mongodbgroupId>
<artifactId>mongodb-driverartifactId>
<version>3.12.10version>
dependency>
dependencies>
2、resources目录下创建一个属性文件mongodb.properties,用来存储Mongdb数据库配置信息,内容如下:
host=localhost
port=27017
dbname=articledb
3、在包com.creatorblue.mongodb下新建辅助类MongoUtils.java,用于getMongoClient()获取MongoDB数据库的连接对象,定义一个getMongoConn()方法,用于实现连接指定的MongoDB数据库,内容如下:
private static Properties properties
private static MongoDatabase mongoDatabase
private static InputStream stream = null
private static String host
private static int port
private static String dbname
// 1.创建一个静态代码块,用于初始化工具类中的静态变量,该静态代码块在类加载过程中的初始化阶段 执行,并且只执行一次
static {
// 判断properties集合对象是否为空,为空则创建一个集合对象
if (properties == null) {
properties = new Properties()
}
/*
* 由于我们调用load方法,而load方法底层抛出了一个IOException异常,此异常为编译时期异常
* 所以,我们调用load方法时,需要处理底层抛过来的异常
*/
try {
// 创建一个InputStream字节输入流对象,用于接收mongodb.properties配置文件中的配置参数
stream = MongoUtils.class.getClassLoader().getResourceAsStream("mongodb.properties")
// properties集合对象调用load()方法,将配置参数加载到properties集合中
properties.load(stream)
} catch (IOException e) {
e.printStackTrace()
}
// 根据mongodb.properties配置文件中的key,获取value值
host = properties.getProperty("host")
port = Integer.parseInt(properties.getProperty("port"))
dbname = properties.getProperty("dbname")
}
// 2.定义一个getMongoClient()方法,用于获取MongoDB数据库的连接对象
public static MongoClient getMongoClient() {
// 由于MongoClients对象调用create()方法,该方法的参数是一个字符串,因此这里将host 和port拼接成字符串,再作为参数传入到该方法中
String addr = "mongodb://" + host + ":" + port
MongoClient mongoClient = MongoClients.create(addr)
return mongoClient
}
// 3.定义一个getMongoConn()方法,用于实现连接指定的MongoDB数据库
public static MongoDatabase getMongoConn() {
MongoClient mongoClient = getMongoClient()
mongoDatabase = mongoClient.getDatabase(dbname)
return mongoDatabase
}
}
4、test目录下新建测试类TestMongo.java完成任务中的内容并验证
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 getCollection() {
mongoDatabase = MongoUtils.getMongoConn();
MongoIterable<String> listCollectionNames = mongoDatabase.listCollectionNames();
for (String collectionName : listCollectionNames) {
System.out.println(collectionName.toString());
}
}
@Test
public void createCollection(){
mongoDatabase = MongoUtils.getMongoConn();
mongoDatabase.createCollection("creatorblue");
}
@Test
public void dropCollection(){
mongoDatabase = MongoUtils.getMongoConn();
MongoCollection<Document> itcast = mongoDatabase.getCollection("creatorblue");
itcast.drop();
}
@Test
public void findDocument(){
mongoDatabase = MongoUtils.getMongoConn();
MongoCollection<Document> comment = mongoDatabase.getCollection("comment");
FindIterable<Document> documents = comment.find();
for (Document document : documents) {
System.out.println(document);
}
}
@Test
public void insertOneDocument(){
mongoDatabase = MongoUtils.getMongoConn();
MongoCollection<Document> comment = mongoDatabase.getCollection("comment");
Document document = new Document("_id", "7").append("articleid","100001")
.append("content","吃饭前,先喝杯水或一碗汤,可减少饭量,对控制体重有帮助")
.append("userid","1007").append("nickname","玛丽莲•梦露").append("age","18")
.append("phone"," 13937165554").append("createdatetime",new Date())
.append("likenum","8888").append("state","null");
comment.insertOne(document);
}
@Test
public void updateDocument(){
mongoDatabase = MongoUtils.getMongoConn();
MongoCollection<Document> comment = mongoDatabase.getCollection("comment");
Document document = new Document("content","饭后半小时最好不要喝大量的水,以免冲淡胃液,稀释胃酸,损害消化功能");
comment.updateOne(Filters.eq("content","吃饭前,先喝杯水或一碗汤,可减少饭量,对控制体重有明显的帮助"),new Document("$set",document));
}
@Test
public void deleteDocument(){
mongoDatabase = MongoUtils.getMongoConn();
MongoCollection<Document> comment = mongoDatabase.getCollection("comment");
comment.deleteOne(Filters.eq("_id","7"));
}
5、运行Junit测试类
6、查看articledb数据库 是否创建集合comment和creatorblue,comment集合中是否插入文档成功
源代码
阅读全文
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=21034,转载请注明出处。
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=21034,转载请注明出处。
评论0