暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

六、MongoDB Java客户端

我的技术人生 2021-05-11
1975

本节将讲解MongoDB在Java中的使用,实践性比较强。因此,写个demo比较直观。直接上代码, https://gitee.com/santy123/mongodb-demo.git


1、先创建一个springboot项目。


2、引入需要jar,驱动包等

    <!-- mongodb 的驱动 -->
    <dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.10.1</version>
    </dependency>


    <!-- 以下是spring管理的mongodb -->
    <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-mongodb -->
    <dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>2.1.1.RELEASE</version>
    </dependency>



    3、MongoClient 直接创建客户端连接

      @Before
      public void init() {
      client = new MongoClient("192.168.12.179", 27017);
      }


      /**
      * @Description: 获取或新增数据库, 如果是新增,则在创建后,通过show dbs是看不到的,需要添加collection才能看到
      * @author:
      * @Datetime: 2021/1/6 14:19
      */
      @Test
      public void connectDB() {
      // 连接数据库,你需要指定数据库名称,如果指定的数据库不存在,mongo会自动创建数据库。
      MongoDatabase database = client.getDatabase("yzfile");
      System.out.println("connect successful----" + database.getName());
      }



      4、创建与查询集合操作

            @Test
        public void createCollection() {
        MongoDatabase database = client.getDatabase("yzfile");
        database.createCollection("mycollection");
        System.out.println("集合创建成功");
        }


        @Test
        public void getCollection() {
        MongoDatabase database = client.getDatabase("yzfile");
        MongoCollection<Document> collection = database.getCollection("mycollection");
        System.out.println("获取集合成功:" + collection.getNamespace());
        MongoIterable<String> collectionNames = database.listCollectionNames();
        for (String string : collectionNames) {
        System.out.println("collection name : " + string);
        }
        }



        5、由springboot 来管理,首先创建配置文件

        mongodb.properties

          mongo.host=192.168.12.179
          mongo.port=27017
          mongo.connectionsPerHost=8
          mongo.threadsAllowedToBlockForConnectionMultiplier=4
          #连接超时时间
          mongo.connectTimeout=1000
          #等待时间
          mongo.maxWaitTime=1500
          mongo.autoConnectRetry=true
          mongo.socketKeepAlive=true
          #socket超时时间
          mongo.socketTimeout=1500
          mongo.slaveOK=true
          mongo.writeconcern=safe


           spring-mongodb.xml

            <!-- 加载mongodb的配置属性文件 -->
            <context:property-placeholder location="classpath:mongodb.properties"/>


            <!-- 扫描持久层 -->
            <context:component-scan base-package="com.santy.mongodb.springdata"/>


            <!-- 配置mongodb客户端连接服务器的相关信息 -->
            <mongo:mongo-client host="${mongo.host}" port="${mongo.port}" id="mongo">
            <mongo:client-options
            write-concern="${mongo.writeconcern}"
            connect-timeout="${mongo.connectTimeout}"
            socket-keep-alive="${mongo.socketKeepAlive}"/>
            </mongo:mongo-client>


            <!-- mongo:db-factory dbname="database" mongo-ref="mongo" -->
            <mongo:db-factory id="mongoDbFactory" dbname="yzfile" mongo-ref="mongo"/>


            <!-- 配置mongodb的模板类:MongoTemplate -->
            <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
            <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
            </bean>


            6、spring-data-mongdb 使用跟操作普通数据库类型,都需要创建相应的实体层、数据持久层、业务逻辑层等。因为类似,就不一一列举,直接看代码。

            文章转载自我的技术人生,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论