MongoDB学习(三) — MongoDB Java入门「建议收藏」

MongoDB学习(三) — MongoDB Java入门「建议收藏」1、搭建测试环境 步骤一:创建 maven 项目 父项目的pom文件

MongoDB学习(三) --- MongoDB Java入门

1、搭建测试环境

  • 步骤一:创建 maven 项目

MongoDB学习(三) --- MongoDB Java入门「建议收藏」

  • 父项目的pom文件

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.tqylxuecheng</groupId>
        <artifactId>xc_parent</artifactId>
        <packaging>pom</packaging>
        <version>1.0-SNAPSHOT</version>
        <modules>
            <module>xc_test_parent</module>
        </modules>
    
    
        <!-- 1 确定spring boot的版本-->
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.4.RELEASE</version>
        </parent>
        <!--2  确定版本-->
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <java.version>1.8</java.version>
            <spring-cloud-release.version>Greenwich.RELEASE</spring-cloud-release.version>
            <mybatis.starter.version>1.3.2</mybatis.starter.version>
            <mapper.starter.version>2.0.3</mapper.starter.version>
            <pageHelper.starter.version>1.2.3</pageHelper.starter.version>
            <druid.starter.version>1.1.9</druid.starter.version>
            <mysql-connector-java.version>5.1.32</mysql-connector-java.version>
            <lombok.version>1.16.20</lombok.version>
            <commons-io.version>2.6</commons-io.version>
            <org.apache.commons.io.version>1.3.2</org.apache.commons.io.version>
            <commons-fileupload.version>1.3.3</commons-fileupload.version>
            <commons-codec.version>1.10</commons-codec.version>
            <commons-lang3.version>3.6</commons-lang3.version>
            <okhttp.version>3.9.1</okhttp.version>
            <feign-okhttp.version>8.18.0</feign-okhttp.version>
            <springfox-swagger.version>2.7.0</springfox-swagger.version>
            <fastjson.version>1.2.9</fastjson.version>
            <fastdfs-client-java.version>1.27.0.0</fastdfs-client-java.version>
            <guava.version>24.0-jre</guava.version>
        </properties>
    
        <!-- 3 锁定sprig cloud版本-->
        <dependencyManagement>
            <dependencies>
                <!--sprig cloud版本-->
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud-release.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
    
                <!-- mybatis启动器 -->
                <dependency>
                    <groupId>org.mybatis.spring.boot</groupId>
                    <artifactId>mybatis-spring-boot-starter</artifactId>
                    <version>${mybatis.starter.version}</version>
                </dependency>
                <!-- 通用Mapper启动器 -->
                <dependency>
                    <groupId>tk.mybatis</groupId>
                    <artifactId>mapper-spring-boot-starter</artifactId>
                    <version>${mapper.starter.version}</version>
                </dependency>
                <dependency>
                    <groupId>com.github.pagehelper</groupId>
                    <artifactId>pagehelper-spring-boot-starter</artifactId>
                    <version>${pageHelper.starter.version}</version>
                </dependency>
                <!-- druid启动器 -->
                <dependency>
                    <groupId>com.alibaba</groupId>
                    <artifactId>druid-spring-boot-starter</artifactId>
                    <version>${druid.starter.version}</version>
                </dependency>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>${mysql-connector-java.version}</version>
                </dependency>
    
                <dependency>
                    <groupId>com.squareup.okhttp3</groupId>
                    <artifactId>okhttp</artifactId>
                    <version>${okhttp.version}</version>
                </dependency>
                <dependency>
                    <groupId>com.netflix.feign</groupId>
                    <artifactId>feign-okhttp</artifactId>
                    <version>${feign-okhttp.version}</version>
                </dependency>
                <dependency>
                    <groupId>commons-io</groupId>
                    <artifactId>commons-io</artifactId>
                    <version>${commons-io.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.commons</groupId>
                    <artifactId>commons-io</artifactId>
                    <version>${org.apache.commons.io.version}</version>
                </dependency>
                <dependency>
                    <groupId>commons-fileupload</groupId>
                    <artifactId>commons-fileupload</artifactId>
                    <version>${commons-fileupload.version}</version>
                </dependency>
                <dependency>
                    <groupId>commons-codec</groupId>
                    <artifactId>commons-codec</artifactId>
                    <version>${commons-codec.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.commons</groupId>
                    <artifactId>commons-lang3</artifactId>
                    <version>${commons-lang3.version}</version>
                </dependency>
    
                <!--swagger2-->
                <dependency>
                    <groupId>io.springfox</groupId>
                    <artifactId>springfox-swagger2</artifactId>
                    <version>${springfox-swagger.version}</version>
                </dependency>
                <dependency>
                    <groupId>io.springfox</groupId>
                    <artifactId>springfox-swagger-ui</artifactId>
                    <version>${springfox-swagger.version}</version>
                </dependency>
    
                <!--fastdfs-->
                <dependency>
                    <groupId>net.oschina.zcx7878</groupId>
                    <artifactId>fastdfs-client-java</artifactId>
                    <version>${fastdfs-client-java.version}</version>
                </dependency>
    
                <dependency>
                    <groupId>com.google.guava</groupId>
                    <artifactId>guava</artifactId>
                    <version>${guava.version}</version>
                </dependency>
    
            </dependencies>
        </dependencyManagement>
        <!-- 4 确定spring cloud私有仓库-->
        <repositories>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
    
    </project>
    

    代码100分

  • 步骤三:子模块测试

MongoDB学习(三) --- MongoDB Java入门「建议收藏」

  • 结构目录

MongoDB学习(三) --- MongoDB Java入门「建议收藏」

  • test_mongo 的 pom文件添加依赖

    代码100分 <dependencies>
            <!--测试-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
            </dependency>
            <!--mongodb-->
            <dependency>
                <groupId>org.mongodb</groupId>
                <artifactId>mongo-java-driver</artifactId>
                <version>3.4.3</version>
            </dependency>
    
        </dependencies>
    

2、基本操作

  • 创建测试类 Test01

MongoDB学习(三) --- MongoDB Java入门「建议收藏」

2.1、获得连接

  • 方式1:连接本地数据库

     @Test
        public void testConnection() {
            //获得本地连接
            MongoClient mongoClient = new MongoClient("localhost", 27017);
            System.out.println(mongoClient);
        }
    
  • 方式2:采用连接字符串

    代码100分@Test
        public void testConnection2() {
            //获得连接
            //拼凑连接字符串
            MongoClientURI connectionString = new MongoClientURI("mongodb://root:1234@localhost:27017");  
            //获得连接
            MongoClient mongoClient = new MongoClient(connectionString);
            System.out.println(mongoClient);
        }
    

2.2、查询第一个

    @Test
    public void testFindOne(){
        //查询一个
        //1 获得连接
        MongoClientURI mongoClientURI = new MongoClientURI("mongodb://root:1234@localhost:27017");
        MongoClient mongoClient = new MongoClient(mongoClientURI);

        // 2 获得数据库
        MongoDatabase database = mongoClient.getDatabase("demo");

        //3 获得集合
        MongoCollection<Document> studentCollection = database.getCollection("student");

        //4 查询操作
        Document document = studentCollection.find().first();

        //5 将文档转换json,并输出
        System.out.println(document.toJson());

    }

2.3、创建集合

    @Test
    public void testCreateColl(){
        //1 获得连接
        MongoClientURI mongoClientURI = new MongoClientURI("mongodb://root:1234@localhost:27017");
        MongoClient mongoClient = new MongoClient(mongoClientURI);
        //2 获得数据库
        MongoDatabase database = mongoClient.getDatabase("demo");
        //3 创建集合
        database.createCollection("teacher");
    }

2.4、插入一个文档

    @Test
    public void testInsertDocument(){
        //1 获得连接
        MongoClientURI mongoClientURI = new MongoClientURI("mongodb://root:1234@localhost:27017");
        MongoClient mongoClient = new MongoClient( mongoClientURI );
        //2 获得数据库
        MongoDatabase database = mongoClient.getDatabase("demo");

        //3 获得集合
        MongoCollection<Document> collection = database.getCollection("teacher");

        //4 准备文档
        Document document = new Document();
        document.append("username","jack");
        document.append("password","1234");
        document.append("age", 18 );

        //5 录入文档
        collection.insertOne(document);
    }

2.5、批量插入文档

    @Test
    public void testInsertManyDocument(){
        //批量插入
        //1 获得连接
        MongoClientURI mongoClientURI = new MongoClientURI("mongodb://root:1234@localhost:27017");
        MongoClient mongoClient = new MongoClient(mongoClientURI);
        //2 获得数据库
        MongoDatabase database = mongoClient.getDatabase("demo");
        //3 获得集合
        MongoCollection<Document> collection = database.getCollection("teacher");
        //4 准备一组数据
        Document doc = new Document();
        doc.append("username","rose");
        doc.append("password","1234");
        doc.append("age", 21 );

        Document doc2 = new Document();
        doc2.append("username","tom");
        doc2.append("password","666");
        doc2.append("age", 25 );

        List<Document> list = new ArrayList<>();
        list.add( doc );
        list.add( doc2 );

        //5 批量插入
        collection.insertMany( list );

    }

2.6、查询所有

 @Test
    public void testFindAll(){

        //1 获得连接
        MongoClientURI mongoClientURI = new MongoClientURI("mongodb://root:1234@localhost:27017");
        MongoClient mongoClient = new MongoClient(mongoClientURI);
        //2 获得数据库
        MongoDatabase database = mongoClient.getDatabase("demo");
        //3 获得集合
        MongoCollection<Document> collection = database.getCollection("teacher");
        //4 查询所有
        FindIterable<Document> findIterable = collection.find();
        //5 处理数据(遍历迭代器)
        MongoCursor<Document> it = findIterable.iterator();
        while( it.hasNext() ){
            Document document = it.next();
            String username = document.get("username", String.class);
            String password = document.get("password", String.class);
            Integer age = document.get("age", Integer.class);

            System.out.println(username + "_" + password + "_" + age);
        }

2.7、更新文档

@Test
public void testUpdate() {
    // 采用连接字符串
    MongoClientURI connectionString = new MongoClientURI("mongodb://root:1234@localhost:27017");
    MongoClient mongoClient = new MongoClient(connectionString);
    // 连接数据库
    MongoDatabase database = mongoClient.getDatabase("demo");
    // 获得集合
    MongoCollection<Document> collection = database.getCollection("teacher");

    // 更新
    collection.updateOne(Filters.eq("age",20), new Document("$set", new Document("name","YY老师")));

}

2.8、删除文档

@Test
public void testDelete() {
    // 采用连接字符串
    MongoClientURI connectionString = new MongoClientURI("mongodb://root:1234@localhost:27017");
    MongoClient mongoClient = new MongoClient(connectionString);
    // 连接数据库
    MongoDatabase database = mongoClient.getDatabase("demo");
    // 获得集合
    MongoCollection<Document> collection = database.getCollection("teacher");

    // 删除
    collection.deleteOne(Filters.eq("age",20));

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7890.html

(0)
上一篇 2023-03-11
下一篇 2023-03-12

相关推荐

  • Python Anchor NW Property Group:优化网站结构和提高检索效率

    Python Anchor NW Property Group:优化网站结构和提高检索效率为了提高用户的体验和搜索引擎的抓取效率,我们需要对网站的结构进行优化。具体包括以下几个方面:

    2024-01-25
    106
  • 三分钟快速搭建分布式高可用的Redis集群

    三分钟快速搭建分布式高可用的Redis集群Redis Cluster是Redis在3.0版本正式推出的专用集群方案,有效地解决了Redis分布式方面的需求,让我们一起快速搭建出分布式高可用的Redis集群吧!

    2023-02-27
    161
  • Pycharm安装库失败解决方法

    Pycharm安装库失败解决方法
    在使用Python开发过程中,我们经常需要通过Pycharm安装一些常用的第三方库。但是在安装过程中,不免会遇到一些问题,比如无法下载、安装语法报错等等,对我们的工作产生一定的阻碍。本文将会从多个方面详细介绍Pycharm安装库失败的解决方法,帮助读者解决这些常见问题。

    2024-04-25
    78
  • 面试官问你:MySQL事务和隔离级别,你该如何回答[亲测有效]

    面试官问你:MySQL事务和隔离级别,你该如何回答[亲测有效]一、事务 事务是由一组SQL语句组成的逻辑处理单元,是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。事务具有以下4个属性,通常简称为事…

    2023-04-08
    151
  • oracle 触发器trigger(主键自增长)[通俗易懂]

    oracle 触发器trigger(主键自增长)[通俗易懂]触发器trigger 触发器我们也可以认为是存储过程,是一种特殊的存储过程。 存储过程:有输入参数和输出参数,定义之后需要调用 触发器:没有输入参数和输出参数,定义之后无需调用,在适当的时候会自动执行

    2022-12-24
    160
  • 多个异构数据库如何关联查询[亲测有效]

    多个异构数据库如何关联查询[亲测有效]DBlink 只适合同种数据库关联,难以关联异构库。其他方式不是改变部署架构,就是增加开发工作量,实施起来困难很多。 开发难度小的方式貌似是 ETL,把异构库变成同构库,就可以用熟悉的方式写关联 S…

    2023-03-06
    159
  • TDSQL-A与CK的对比[通俗易懂]

    TDSQL-A与CK的对比[通俗易懂]CK介绍 CK是目前社区里面比较热门的,应用场景也比较广泛。 首先,在架构上,集群内划分为多个分片,通过分片的线性扩展能力,支持海量数据的分布式存储计算,每个分片内包含一定数量的节点Node,即进程,

    2023-04-21
    158
  • MySQL深入学习-

    MySQL深入学习-B+树索引的正确使用 索引并不是越多越好,索引创建越多,MySQL维护的代价越高,如果SQL未能完全使用到索引,创建索引的意义是不大的。 适用条件 表x,创建索引a,b,c。主键y。 全值匹配 sel

    2023-05-18
    153

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注