专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java连接mongodb数据库示例

Java连接mongodb数据库示例

更新时间:2022-09-27 10:46:40 来源:动力节点 浏览843次

要知道,MongoDB 是领先的 NoSQL 数据库系统,由于其动态模式特性以及相对于大数据的高性能、水平可扩展性、复制等优势,近年来变得非常流行。与提供 JDBC 兼容的传统关系数据库系统不同驱动程序,MongoDB 带有自己的非 JDBC 驱动程序,称为 Mongo Java 驱动程序。这意味着我们不能使用 JDBC API 从 Java 与 MongoDB 进行交互。相反,我们必须使用它自己的 Mongo Java Driver API。

1.下载Mongo Java驱动

下载最新版本的 Mongo Java 驱动程序(撰写本文时为 2.11.1 版)。JAR 文件名为mongo-java-driver-VERSION.jar(大约 400KB)。将下载的 JAR 文件复制到您的类路径中。

Mongo Java 驱动程序的在线 API 文档可以在这里找到。

2. 使用 MongoClient 连接 MongoDB

Mongo客户端类用于与 MongoDB 服务器建立连接并执行与数据库相关的操作。这里有些例子:

创建一个MongoClient实例,该实例连接到在 localhost 和默认端口上运行的默认 MongoDB 服务器:

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MongoClient mongoClient = new MongoClient();</font></font>

连接到在默认端口 (27017) 上侦听的命名 MongoDB 服务器:

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MongoClient mongoClient = new MongoClient("localhost");</font></font>

或者:

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MongoClient mongoClient = new MongoClient("db1.server.com");</font></font>

连接到在特定端口上侦听的命名 MongoDB 服务器:

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MongoClient mongoClient = new MongoClient("localhost", 27017);</font></font>

或者:

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MongoClient mongoClient = new MongoClient("db1.server.com", 27018);</font></font>

连接到服务器副本集:

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">List<ServerAddress> 种子 = new ArrayList<ServerAddress>();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
seed.add(new ServerAddress("db1.server.com", 27017));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
seed.add(new ServerAddress("db2.server.com", 27018));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
seed.add(new ServerAddress("db3.server.com", 27019));</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MongoClient mongoClient = new MongoClient(seeds);</font></font>

建立连接后,我们可以获取数据库并进行认证(如果服务器运行在安全模式下),例如:

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MongoClient mongoClient = new MongoClient();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
DB db = mongoClient.getDB("test");</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
char[] 密码 = new char[] {'s', 'e', 'c', 'r', 'e', 't'};</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
boolean authenticated = db.authenticate("root", 密码);</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
如果(经过身份验证){</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    System.out.println("成功登录MongoDB!");</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
} 别的 {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    System.out.println("无效的用户名/密码");</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
}</font></font>

默认情况下,MongoDB 服务器在不需要身份验证的信任模式下运行。

我们来看一个完整的程序:

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">包 net.codejava.mongodb;</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
导入 java.net.UnknownHostException;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
导入 java.util.List;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
导入 java.util.Set;</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
导入com.mongodb.DB;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
导入 com.mongodb.MongoClient;</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
公共类 JavaMongoDBConnection {</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    公共静态无效主要(字符串[]参数){</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        尝试 {</font></font><font></font>
            <font></font>
            MongoClient mongoClient = new MongoClient("localhost");<font></font>
            <font></font>
            List<String> databases = mongoClient.getDatabaseNames();<font></font>
            <font></font>
            for (String dbName : databases) {<font></font>
                System.out.println("- Database: " + dbName);<font></font>
                <font></font>
                DB db = mongoClient.getDB(dbName);<font></font>
                <font></font>
                Set<String> collections = db.getCollectionNames();<font></font>
                for (String colName : collections) {<font></font>
                    System.out.println("\t + Collection: " + colName);<font></font>
                }<font></font>
            }<font></font>
            <font></font>
            mongoClient.close();<font></font>
            <font></font>
        } catch (UnknownHostException ex) {<font></font>
            ex.printStackTrace();<font></font>
        }<font></font>
        <font></font>
    }<font></font>
}

这个 Java 程序连接到在默认端口上运行在 localhost 上的 MongoDB 服务器,然后列出服务器上所有可用的数据库名称。对于每个数据库,它会列出所有的集合名称(一个集合相当于关系数据库中的一个表),最后关闭连接。该程序将产生以下输出:

3.使用MongoDB连接字符串URI

也可以使用表示数据库连接 URI 的字符串来连接到 MongoDB 服务器,例如:

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">字符串 dbURI = "mongodb://localhost";</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MongoClient mongoClient = new MongoClient(new MongoClientURI(dbURI));</font></font>

URI 的语法如下:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

以下是一些连接字符串 URI 示例:

在默认端口连接到在 localhost 上运行的 MongoDB 服务器:

mongodb://localhost

使用用户root和密码secret连接到在端口27027上运行的命名 MongoDB 服务器db1.server.com上的管理数据库:

mongodb://root:secret@db1.server.com:27027

连接到服务器db2.server.com上的用户数据库:

mongodb://db2.server.com/users

使用用户tom和密码secret连接到运行在端口27027上的命名 MongoDB 服务器db3.server.com上的产品数据库:

mongodb://tom:secret@db3.server.com:27027/products

连接到三个服务器的副本集:

mongodb://db1.server.com,db2.server.com,db3.server.com

以上就是关于“Java连接mongodb数据库示例”介绍,大家如果想了解更多相关知识,不妨来关注一下本站的Java视频教程,里面的课程内容细致全面,通俗易懂,很适合没有基础的小伙伴学习,希望对大家能够有所帮助哦。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>