01.使用Java连接MongoDB

文章目录

  • Java操作MongoDB
    • 搭建基础Java Maven项目
      • 1.创建Maven项目
      • 2.配置Maven pom.xml
    • 创建MongoDB数据库连接对象
      • 1.创建一个简单测试类,来创建一个简单的数据库连接
      • 2.封装数据库连接操作
    • MongoDB数据集查询
      • 1.查询MongoDB数据库中Collection (数据表) 的信息
      • 2.查询MongoDB中Collection(数据表)中的数据集
      • 3.MongoDB中的简单条件查询
          • 未完待续。。。。。

Java操作MongoDB

操作系统:Win10 1803
jdk环境:jdk1.8.201
运行软件:Idea Ultima Education 2019.1
项目框架:Maven
MongoDB版本:MongoDB 4.0.5
此文章适合刚刚上手MongoDB的新手,如果此文章内容有错误还请各位大佬指正

搭建基础Java Maven项目

1.创建Maven项目

这里默认大家都会创建maven项目,如果不会搭建的话可以安照自己使用的IDE参考对应的博客
+Idea开发Maven项目
+ Idea配置Maven环境
+ Idea搭建Maven项目

  • Eclipse开发Maven项目
    • Eclipse配置Maven环境
    • Eclipse创建Maven项目

2.配置Maven pom.xml

  • 导入java连接MongoDB需要的jar包
       <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>3.8.1version>
            <scope>testscope>
        dependency>
        
        <dependency>
            <groupId>org.mongodbgroupId>
            <artifactId>mongo-java-driverartifactId>
            <version>3.10.1version>
        dependency>
    
  • 为了方便所以我添加了一些辅助jar包
    <dependencies>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>3.8.1version>
            <scope>testscope>
        dependency>
        <dependency>
            <groupId>org.mongodbgroupId>
            <artifactId>mongo-java-driverartifactId>
            <version>3.10.1version>
        dependency>
        
        <dependency>
            <groupId>com.0opslabgroupId>
            <artifactId>0opslab-utilsartifactId>
            <version>1.0.8version>
            <exclusions>
                <exclusion>
                    <groupId>javax.servletgroupId>
                    <artifactId>javax.servlet-apiartifactId>
                exclusion>
            exclusions>
        dependency>
    
        
        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>fastjsonartifactId>
            <version>1.2.56version>
        dependency>
    
    dependencies>
    <build>
        
        <resources>
            <resource>
                <directory>src/main/javadirectory>
                <includes>
                    <include>**/*.propertiesinclude>
                    <include>**/*.xmlinclude>
                includes>
                <filtering>falsefiltering>
            resource>
            <resource>
                <directory>src/main/resourcesdirectory>
                <includes>
                    <include>**/*.propertiesinclude>
                    <include>**/*.xmlinclude>
                includes>
                <filtering>truefiltering>
            resource>
        resources>
    build>
    
    
    <properties>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <maven.compiler.source>1.8maven.compiler.source>
        <maven.compiler.target>1.8maven.compiler.target>
    properties>
    

创建MongoDB数据库连接对象

1.创建一个简单测试类,来创建一个简单的数据库连接

  • 数据库连接核心代码
//创建一个MongoDB连接对象 MongoClient
MongoClient mongoClient = new MongoClient("127.0.0.1",27017);
//然后创建一个数据库操作对象通过mongoClient.getDatabase(你的库名)获取
MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
  • 这里我创建了一个测试类查看能否连接上MongoDB中的test库
    需要被连接的test数据库
    01.使用Java连接MongoDB_第1张图片
    测试后结果
    01.使用Java连接MongoDB_第2张图片

2.封装数据库连接操作

因为每次要连接数据库的时候都需要写这两行代码,何不如将这两行代码封装成类并且通过配置文件获取MongoDB连接字符串,并且将其设置为单例模式从而提升代码运行效率呢

  1. 将数据库连接操作封装成一个对象(Connection),并且设为单例模式
    Connection.java
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;

public class Connection {


    //创建一个可以获取db.properties中MongoDB连接内容的对象
    private ConnectionProperty connectionProperty;
    //单例模式中将MongoDB的连接对象设置为静态变量
    private static Connection connection;
    //MongoDB的数据库连接操作对象
    private MongoClient mongoClient;
    private Connection(){
        connectionProperty = new ConnectionProperty();
    }

    /**
     * 设置MongoDB的连接字符串,如果没有则默认为db.properties中的内容
     * @param connectionProperty
     */
    public void setConnectionProperty(ConnectionProperty connectionProperty) {
        this.connectionProperty = connectionProperty;
    }

    /**
     *
     * @return 返回MongoDB数据库操作连接对象MongoDataBase,为增加对数据库的操作安全性所以没有将此对象设置为单例对象
     * @throws Exception 抛出数据库连接异常
     */
    public MongoDatabase getMongodb() throws Exception {
        //创建一个数据库连接对象
        mongoClient = new MongoClient(connectionProperty.getHost(),connectionProperty.getPort());
        //获取数据库操作对象,并连接数据库
        MongoDatabase mongodb = mongoClient.getDatabase(connectionProperty.getDatabase());
        if (mongodb.getName()!=null)
            return mongodb;
        else
            throw new Exception("数据库连接出错");
    }

    /**
     * 单例模式中唯一可以获取到MongoDB数据库操作对象的方式
     * @return 返回MongoDB数据库连接对象Connection
     */
    public static Connection getInstance() {
        if (connection != null)
            return connection;
        else{
            connection = new Connection();
        }
        return connection;
    }
}
  1. 将读取配置文件的类封装成一个对象(ConnectionProperty),并且将其设为参数传入数据库连接对象中
    ConnectionProperty.java
import com.opslab.util.PropertiesUtil;

import java.net.URL;

public class ConnectionProperty {
    //MongoDB服务器的IP
    private String host;
    //MongoDB连接端口号
    private int port;
    //需要进行连接的数据库名
    private String database;
    private String path = "src/main/resources/properties/db.properties";

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    public String getHost() {
        return host;
    }

    public int getPort() {
        return port;
    }

    public String getDatabase() {
        return database;
    }

    public ConnectionProperty(){
        UpdateProperty(path);
    }

    public void UpdateProperty(String path){
        this.path = path;
        PropertiesUtil propertiesUtil = new PropertiesUtil();
        try{
            host = propertiesUtil.GetValueByKey(path,"mongodb.host");
            port = Integer.parseInt(propertiesUtil.GetValueByKey(path,"mongodb.port"));
            database = propertiesUtil.GetValueByKey(path,"mongodb.database");
        }catch (Exception e){
            //这里添加一层文件保护,为防止读取不到配置文件导致出错
            e.printStackTrace();
        }
    }
}
  1. 创建db.properties
    db.properties
mongodb.host = 127.0.0.1
mongodb.port = 27017
mongodb.database = test
  1. 项目代码框架
    db.properties存放在/src/main/resources/properties
    01.使用Java连接MongoDB_第3张图片

MongoDB数据集查询

1.查询MongoDB数据库中Collection (数据表) 的信息

2.查询MongoDB中Collection(数据表)中的数据集

3.MongoDB中的简单条件查询

未完待续。。。。。

你可能感兴趣的:(数据库,Web编程开发)