mongo数据项目应用

mongo数据项目应用

一、数据库的客户端程序以及配置和CRUD操作

1、客户端工具

   1)目前使用的是mongochef

   2)无用户名和密码登录

134842_AyQr_2404345.png

 3)使用用户名和密码登录时,需要配置Authentication,信任模式为standard,用户名和密码为管理员建立和分配的,Authentication DB为需要访问的数据库名称。

134843_Fy4L_2404345.png

4)数据库集群模式时链接类型需要编程Replica Set or Sharded Cluster

members填写集群的服务器IP以及端口号

134843_KrCf_2404345.png

5)两种存储模式

     由于MongoDB的文档结构为BJSON格式(BJSON全称:Binary JSON),而BJSON格式本身就支持保存二进制格式的数据,因此可以把文件的二进制格式的数据直接保存到MongoDB的文档结构中。但是由于一个BJSON的最大长度不能超过4M,所以限制了单个文档中能存入的最大文件不能超过4M。为了提供对大容量文件存取的支持,samus驱动提供了“GridFS”方式来支持,“GridFS”方式文件操作需要引入新的程序集“MongoDB.GridFS.dll”。

6)CRUD操作

查询:

134842_afBu_2404345.png

修改:点击右键,edit json,就可以进行修改。

134842_gW9W_2404345.png

删除:点击右键,remove Document就可以删掉。

134842_jJn5_2404345.png

新增:点击右键,Add Document,把json串完善后,即可以存储。存储完毕后,查询就可以看到。

134842_toc1_2404345.png

二、java代码配置

1、在pom.xml中定义数据库的数据库名、用户名密码等信息

134842_rKFn_2404345.png

增加对mongodbmaven依赖

<!--mongodb  -->

    <dependency>

        <groupId>org.mongodb</groupId>

        <artifactId>mongo-java-driver</artifactId>

        <version>2.13.3</version>

    </dependency>

    <dependency>

         <groupId>org.springframework.data</groupId>

         <artifactId>spring-data-mongodb</artifactId>

         <version>1.7.1.RELEASE</version>

     </dependency>

     <dependency>

         <groupId>org.springframework.data</groupId>

         <artifactId>spring-data-mongodb-cross-store</artifactId>

         <version>1.7.1.RELEASE</version>

     </dependency>

     <dependency>

         <groupId>org.springframework.data</groupId>

         <artifactId>spring-data-mongodb-log4j</artifactId>

         <version>1.7.1.RELEASE</version>

     </dependency>

        <!--mongodb end -->

 

2、增加配置文件mongodb.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" 

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

    xmlns:p="http://www.springframework.org/schema/p"  

    xmlns:mongo="http://www.springframework.org/schema/data/mongo" 

    xsi:schemaLocation="http://www.springframework.org/schema/beans  

            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 

            http://www.springframework.org/schema/data/mongo 

            http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">

           

<!--    <mongo:mongo id="mongo" host="${mongo.host}" port="${mongo.port}" >

        <mongo:options connections-per-host="${mongo.connectionsPerHost}"

            threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"

            connect-timeout="1500" max-wait-time="1500"

            auto-connect-retry="true" socket-keep-alive="true"

            socket-timeout="1500" slave-ok="true" write-number="1"

            write-timeout="0" write-fsync="true"/>

    </mongo:mongo> -->

<!-- 定义mongo对象,对应的是mongodb官方jar包中的Mongoreplica-set设置集群副本的ip地址和端口 --> 

        <mongo:mongo  id="mongo"  replica-set="${mongo.replicaSet}">

<!-- 一些连接属性的设置 -->

        <mongo:options connections-per-host="${mongo.connectionsPerHost}" //#mongo实例来说,每个host允许链接的最大链接数,这些链接空闲时会放入池中,如果链接被耗尽,任何请求链接的操作会被阻塞等待链接可用,推荐配置10

            threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"

//此参数跟connectionsPerHost的乘机为一个线程变为可用的最大阻塞数, 最多50个线程等级一个链接,推荐配置为5

            connect-timeout="1500"

//链接超时的毫秒数,0表示不超时,此参数只用在新建一个新链接时,推荐配置10,000.

max-wait-time="1500"

//一个线程等待链接可用的最大等待毫秒数,0表示不等待,负数表示等待时间不确定,推荐配置120000

            auto-connect-retry="true"

//false 当在进行socket读写时,不会阻止异常抛出,驱动已经有自动重建破坏链接和重试读操作. 推荐配置false

           socket-keep-alive="true"

            socket-timeout="1500"

//此参数表示socket I/O读写超时时间,推荐为不超时,即

slave-ok="true"

//该标志用于控制socket保持活动的功能,通过防火墙保持连接活着

 write-number="1"

            write-timeout="0" write-fsync="true"/>

    </mongo:mongo>

    <!-- 

    <mongo:mongo  id="mongo"  replica-set="${mongo.replicaSet}">

        <mongo:options connections-per-host="${mongo.connectionsPerHost}"

            threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"

            connect-timeout="${mongo.connectTimeout}" max-wait-time="${mongo.maxWaitTime}" auto-connect-retry="${mongo.autoConnectRetry}"

            socket-keep-alive="${mongo.socketKeepAlive}" socket-timeout="${mongo.socketTimeout}" slave-ok="${mongo.slaveOk}"

            write-number="${mongo.writeNumber}" write-fsync="${mongodb.writeFsync}" />

    </mongo:mongo>-->

    <bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials">

        <constructor-arg name="username" value="${mongo.username}" />

        <constructor-arg name="password" value="${mongo.password}" />

    </bean>

     <!-- mongo的工厂,通过它来取得mongo实例,dbnamemongodb的数据库名,没有的话会自动创建 --> 

    <bean id="mongoDbFactory"

        class="org.springframework.data.mongodb.core.SimpleMongoDbFactory">

        <constructor-arg ref="mongo" />

        <constructor-arg value="${mongo.dbname}" />

        <constructor-arg ref="userCredentials" />

    </bean>

 

    <bean id="mappingContext"

        class="org.springframework.data.mongodb.core.mapping.MongoMappingContext" />

 

    <bean id="defaultMongoTypeMapper"

        class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper">

        <constructor-arg name="typeKey">

            <null />

        </constructor-arg>

    </bean>

<!-- 映射转换器,把它们作为mongodb的一个collection的映射 --> 

    <bean id="mappingMongoConverter"

        class="org.springframework.data.mongodb.core.convert.MappingMongoConverter">

        <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />

        <constructor-arg name="mappingContext" ref="mappingContext" />

        <property name="typeMapper" ref="defaultMongoTypeMapper" />

    </bean>

<!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 --> 

    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">

        <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />

        <constructor-arg name="mongoConverter" ref="mappingMongoConverter" />

    </bean>

</beans>

 

3、在applicationContext.xml文件中装载mongodb.xml

134843_zb7Z_2404345.png

三、java代码的CRUD写法

134842_MRYG_2404345.png

134842_qNjj_2404345.png

 

org.springframework.data.mongodb.core.MongoTemplate定义了更多的方法

转载于:https://my.oschina.net/Seaside20151225/blog/715546

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值