- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章java连接mongoDB并进行增删改查操作实例详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例讲述了java连接mongodb并进行增删改查操作。分享给大家供大家参考,具体如下:
。
在java中使用mongodb之前,首先需要拥有java连接mongodb的第三方驱动包(jar包) 。
1)maven项目可通过在pom.xml中添加依赖 。
1
2
3
4
5
6
7
|
<dependencies>
<dependency>
<groupid>org.mongodb</groupid>
<artifactid>mongo-java-driver</artifactid>
<version>
3.0
.
4
</version>
</dependency>
</dependencies>
|
2)非maven项目jar包下载地址:
mongodb jar包 。
。
将mongodb jdbc驱动加入到项目之后,就可以对mongodb进行操作了.
1)不通过认证连接mongodb服务 。
1
2
|
//连接到 mongodb 服务
mongoclient mongoclient =
new
mongoclient(
"localhost"
,
27017
);
|
这里的 "localhost" 表示连接的服务器地址,27017 为端口号。可以省略 端口号 不写,系统将默认端口号为 27017。如:
1
2
|
//连接到 mongodb 服务,默认端口号为27017
mongoclient mongoclient =
new
mongoclient(
"localhost"
);
|
也可以将 服务器地址 和 端口号 都省略,系统默认服务器地址为 "localhost",端口号为 27017。如:
1
2
|
//连接到 mongodb 服务,默认连接到localhost服务器,端口号为27017
mongoclient mongoclient =
new
mongoclient();
|
2)通过认证连接mongodb服务 。
1
2
3
4
5
6
7
8
9
10
|
list<serveraddress> adds =
new
arraylist<>();
//serveraddress()两个参数分别为 服务器地址 和 端口
serveraddress serveraddress =
new
serveraddress(
"localhost"
,
27017
);
adds.add(serveraddress);
list<mongocredential> credentials =
new
arraylist<>();
//mongocredential.createscramsha1credential()三个参数分别为 用户名 数据库名称 密码
mongocredential mongocredential = mongocredential.createscramsha1credential(
"username"
,
"databasename"
,
"password"
.tochararray());
credentials.add(mongocredential);
//通过连接认证获取mongodb连接
mongoclient mongoclient =
new
mongoclient(adds, credentials);
|
serveraddress()两个参数 "localhost" , 27017 分别为 服务器地址 和 端口.
mongocredential.createscramsha1credential()三个参数 "username", "databasename", "password".tochararray() 分别为 用户名 数据库名称 密码.
3)连接到数据库 。
1
2
|
//连接到数据库
mongodatabase mongodatabase = mongoclient.getdatabase(
"test"
);
|
这里的 "test" 表示数据库名,若指定的数据库不存在,mongodb将会在你第一次插入文档时创建数据库.
4)封装成工具类 。
由于所有连接数据库操作都需要执行这两步操作,我们可以将这两步操作封装成工具类.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import
com.mongodb.mongoclient;
import
com.mongodb.client.mongodatabase;
//mongodb 连接数据库工具类
public
class
mongodbutil {
//不通过认证获取连接数据库对象
public
static
mongodatabase getconnect(){
//连接到 mongodb 服务
mongoclient mongoclient =
new
mongoclient(
"localhost"
,
27017
);
//连接到数据库
mongodatabase mongodatabase = mongoclient.getdatabase(
"test"
);
//返回连接数据库对象
return
mongodatabase;
}
//需要密码认证方式连接
public
static
mongodatabase getconnect2(){
list<serveraddress> adds =
new
arraylist<>();
//serveraddress()两个参数分别为 服务器地址 和 端口
serveraddress serveraddress =
new
serveraddress(
"localhost"
,
27017
);
adds.add(serveraddress);
list<mongocredential> credentials =
new
arraylist<>();
//mongocredential.createscramsha1credential()三个参数分别为 用户名 数据库名称 密码
mongocredential mongocredential = mongocredential.createscramsha1credential(
"username"
,
"databasename"
,
"password"
.tochararray());
credentials.add(mongocredential);
//通过连接认证获取mongodb连接
mongoclient mongoclient =
new
mongoclient(adds, credentials);
//连接到数据库
mongodatabase mongodatabase = mongoclient.getdatabase(
"test"
);
//返回连接数据库对象
return
mongodatabase;
}
}
|
。
mongodb中的数据都是通过文档(对应于关系型数据库表中的一行)保存的,而文档又保存在集合(对应于关系型数据库的表)中.
1)获取集合 。
要对数据进行crud操作首先要获取到操作的集合.
1
2
|
//获取集合
mongocollection<document> collection = mongodbutil.getconnect().getcollection(
"user"
);
|
这里的 "user" 表示集合的名字,如果指定的集合不存在,mongodb将会在你第一次插入文档时创建集合.
2)创建文档 。
要插入文档首先需要创建文档对象 。
1
2
3
4
|
//创建文档
document document =
new
document(
"name"
,
"张三"
)
.append(
"sex"
,
"男"
)
.append(
"age"
,
18
);
|
3)插入文档 。
插入一个文档,使用 mongocollection 对象的 insertone() 方法,该方法接收一个 document 对象作为要插入的数据 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//插入一个文档
@test
public
void
insertonetest(){
//获取数据库连接对象
mongodatabase mongodatabase = mongodbutil.getconnect();
//获取集合
mongocollection<document> collection = mongodatabase.getcollection(
"user"
);
//要插入的数据
document document =
new
document(
"name"
,
"张三"
)
.append(
"sex"
,
"男"
)
.append(
"age"
,
18
);
//插入一个文档
collection.insertone(document);
}
|
插入多个文档,使用 mongocollection 对象的 insertmany() 方法,该方法接收一个 数据类型为 document 的 list 对象作为要插入的数据 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
//插入多个文档
@test
public
void
insertmanytest(){
//获取数据库连接对象
mongodatabase mongodatabase = mongodbutil.getconnect();
//获取集合
mongocollection<document> collection = mongodatabase.getcollection(
"user"
);
//要插入的数据
list<document> list =
new
arraylist<>();
for
(
int
i =
1
; i <=
3
; i++) {
document document =
new
document(
"name"
,
"张三"
)
.append(
"sex"
,
"男"
)
.append(
"age"
,
18
);
list.add(document);
}
//插入多个文档
collection.insertmany(list);
}
|
4)删除文档 。
删除与筛选器匹配的单个文档,使用 mongocollection 对象的 deleteone() 方法,该方法接收一个数据类型为 bson 的的对象作为过滤器筛选出需要删除的文档。然后删除第一个。为了便于创建过滤器对象,jdbc驱动程序提供了 filters 类.
1
2
3
4
5
6
7
8
9
10
11
12
|
//删除与筛选器匹配的单个文档
@test
public
void
deleteonetest(){
//获取数据库连接对象
mongodatabase mongodatabase = mongodbutil.getconnect();
//获取集合
mongocollection<document> collection = mongodatabase.getcollection(
"user"
);
//申明删除条件
bson filter = filters.eq(
"age"
,
18
);
//删除与筛选器匹配的单个文档
collection.deleteone(filter);
}
|
删除与筛选器匹配的所有文档,使用 mongocollection 对象的 deletemany() 方法,该方法接收一个数据类型为 bson 的的对象作为过滤器筛选出需要删除的文档。然后删除所有筛选出的文档.
1
2
3
4
5
6
7
8
9
10
11
12
|
//删除与筛选器匹配的所有文档
@test
public
void
deletemanytest(){
//获取数据库连接对象
mongodatabase mongodatabase = mongodbutil.getconnect();
//获取集合
mongocollection<document> collection = mongodatabase.getcollection(
"user"
);
//申明删除条件
bson filter = filters.eq(
"age"
,
18
);
//删除与筛选器匹配的所有文档
collection.deletemany(filter);
}
|
5)修改文档 。
修改单个文档,使用 mongocollection 对象的 updateone() 方法,该方法接收两个参数,第一个数据类型为 bson 的过滤器筛选出需要修改的文档,第二个参数数据类型为 bson 指定如何修改筛选出的文档。然后修改过滤器筛选出的第一个文档.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//修改单个文档
@test
public
void
updateonetest(){
//获取数据库连接对象
mongodatabase mongodatabase = mongodbutil.getconnect();
//获取集合
mongocollection<document> collection = mongodatabase.getcollection(
"user"
);
//修改过滤器
bson filter = filters.eq(
"name"
,
"张三"
);
//指定修改的更新文档
document document =
new
document(
"$set"
,
new
document(
"age"
,
100
));
//修改单个文档
collection.updateone(filter, document);
}
|
修改多个文档,使用 mongocollection 对象的 updatemany() 方法,该方法接收两个参数,第一个数据类型为 bson 的过滤器筛选出需要修改的文档,第二个参数数据类型为 bson 指定如何修改筛选出的文档。然后修改过滤器筛选出的所有文档.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//修改多个文档
@test
public
void
updatemanytest(){
//获取数据库连接对象
mongodatabase mongodatabase = mongodbutil.getconnect();
//获取集合
mongocollection<document> collection = mongodatabase.getcollection(
"user"
);
//修改过滤器
bson filter = filters.eq(
"name"
,
"张三"
);
//指定修改的更新文档
document document =
new
document(
"$set"
,
new
document(
"age"
,
100
));
//修改多个文档
collection.updatemany(filter, document);
}
|
6)查询文档 。
使用 mongocollection 对象的 find() 方法,该方法有多个重载方法,可以使用不带参数的 find() 方法查询集合中的所有文档,也可以通过传递一个 bson 类型的 过滤器查询符合条件的文档。这几个重载方法均返回一个 finditerable 类型的对象,可通过该对象遍历出查询到的所有文档.
查找集合中的所有文档 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//查找集合中的所有文档
@test
public
void
findtest(){
//获取数据库连接对象
mongodatabase mongodatabase = mongodbutil.getconnect();
//获取集合
mongocollection<document> collection = mongodatabase.getcollection(
"user"
);
//查找集合中的所有文档
finditerable finditerable = collection.find();
mongocursor cursor = finditerable.iterator();
while
(cursor.hasnext()) {
system.out.println(cursor.next());
}
}
|
指定查询过滤器查询 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
//指定查询过滤器查询
@test
public
void
filterfindtest(){
//获取数据库连接对象
mongodatabase mongodatabase = mongodbutil.getconnect();
//获取集合
mongocollection<document> collection = mongodatabase.getcollection(
"user"
);
//指定查询过滤器
bson filter = filters.eq(
"name"
,
"张三"
);
//指定查询过滤器查询
finditerable finditerable = collection.find(filter);
mongocursor cursor = finditerable.iterator();
while
(cursor.hasnext()) {
system.out.println(cursor.next());
}
}
|
可通过 first() 方法取出查询到的第一个文档 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//取出查询到的第一个文档
@test
public
void
findtest(){
//获取数据库连接对象
mongodatabase mongodatabase = mongodbutil.getconnect();
//获取集合
mongocollection<document> collection = mongodatabase.getcollection(
"user"
);
//查找集合中的所有文档
finditerable finditerable = collection.find();
//取出查询到的第一个文档
document document = (document) finditerable.first();
//打印输出
system.out.println(document);
}
|
。
到这里,java对mongodb的一些基本操作就介绍完了。实现的步骤为:添加驱动==>连接到服务==>连接到数据库==>选择集合==>对集合进行crud操作.
希望本文所述对大家java程序设计有所帮助.
最后此篇关于java连接mongoDB并进行增删改查操作实例详解的文章就讲到这里了,如果你想了解更多关于java连接mongoDB并进行增删改查操作实例详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我试图理解基数排序,但在理解实现实际代码时改 rebase 数时遇到问题。这是我用来学习基数排序的代码,我会尝试解释我不明白的地方。 此代码由 GeeksForGeeks 提供: // C++ imp
话不多说,请看代码: ? 1
本文实例讲述了mysql语句实现简单的增、删、改、查操作。分享给大家供大家参考,具体如下: 1、创建db_shop数据库,如果该数据库不存在则创建 ?
使用oracle触发器 实现对某个表的增改删的监控操作,并记录到另一个表中。 代码: 复制代码代码如下: create or replace trigger test_trigge
java连接数据库增、删、改、查工具类 数据库操作工具类,因为各厂家数据库的分页条件不同,目前支持Mysql、Oracle、Postgresql的分页查询 在Postgresql环境测试过了,其他
1、修改数据 复制代码代码如下: DataRow dr =
注册表可以用来进行存储一些程序的信息,例如用户的权限、或者某些值等,可以根据个人需要进行存储和删减。 当前注册表主目录: 引用包 Wesky.Net.OpenTools 1.0.5或
是否可以将 pdf 页面的页眉更改为与当前所选书签同名的名称?我正在为我的 pdf 生成使用 Flying Saucer 。你能举个例子吗?提前致谢。 最佳答案 这对我适用于 flyingsaucer
好家伙,写后端,这多是一件美逝. 关于这个项目的代码前面的博客有写 我的第一个独立项目 - 随笔分类 - 养肥胖虎 - 博客园 (cnblogs.com
准备工作: 增、删、改、查的方法有很多很多种,这里只展示出常用的几种。 ?
需要5个类: 1.实体类:Person.java 2.抽象类:SQLOperate.java(封装了对数据库的操作) 3.助手类:DBOpenHelper.java(继承SQLiteOpenH
首先是是一个简单的例子,单链表的建立和输出。 程序1.1 复制代码 代码如下: #include<iostream> #include<string> using na
数据库操纵基本流程为: 1、连接数据库服务器 2、选择数据库 3、执行SQL语句 4、处理结果集 5、打印操作信息 其中用到的相关函数有 •resource m
我需要为 iPad 和 iPhone 设置不同颜色的标签,我知道我们可以为不同的尺寸类别更改字体大小,但是有什么方法可以根据尺寸类别的值设置不同的颜色 我知道有可用的代码解决方案,但我想知道 size
假设我有一个物体相对于相机的坐标 X、Y、Z 和方向 Rx、Ry、Rz。此外,我有这个相机在世界上的坐标 U、V、W 和方向 Ru、Rv、Rw。 如何将对象的位置(位置和旋转)转换为其在世界中的位置?
CRUD是Create(创建)、Read(读取)、Update(更新)和Delete(删除)的缩写,它是普通应用程序的缩影。如果您掌握了某框架的CRUD编写,那么意味可以使用该框架创建普通应用程序了
项目结构: 添加页面: &
本文实例讲述了android操作sqlite数据库(增、删、改、查、分页等)及listview显示数据的方法。分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识
总括 pandas的索引函数主要有三种: loc 标签索引,行和列的名称 iloc 整型索引(绝对位置索引),绝对意义上的几行几列,起始索引为0 ix 是 iloc 和 loc的合体 at
我是一名优秀的程序员,十分优秀!