1. 程式人生 > >Mongodb非關係型資料庫的使用

Mongodb非關係型資料庫的使用

根據專案需求,把大量的日誌系統資料要儲存到非關係型資料庫中,為提高工作效率。java+mysql+mongodb

業務資料儲存到mysql中,日誌資料儲存到mongodb中。在java中配置mongodb。

1、安裝mongodb資料庫,下載適應系統的mongodb版本我用的是mongodb-win32-i386-3.0.1.zip,下載解壓後,配置config檔案,

dbpath=d:\mongodb\data
logpath=d:\mongodb\log\mongo.log
diaglog=3
logappend=true
journal=true
quiet=false
port=27017

在相應目錄下建立日誌檔案,在mongodb目錄下建立log,然後簡歷mongo.log檔案

2、在window下建立mongodb的系統服務。啟動服務cmd>services.msc(具體操作命令見百度)如果服務啟不來,刪除data目錄下的mongod.lock再啟動。

3、下載MongoVUE視覺化工具,通過MongoVUE對mongodb資料庫操作

4、java專案是配置mongodb資料庫

下載:mongo-java-diver-3.4.2.jar  mongo-java-diver-3.4.2-javadoc.jar  mongo-java-diver-3.4.2-soures.jar  spring-data-mongodb-1.4.1.RELEASE.jar

引入springmvc專案中

5、配置mongodb-context.xml 及mongodb.properties檔案,連線mongodb資料庫

mongodb.properties配置如下:

mongo.hostport=127.0.0.1:27017
mongo.connectionsPerHost=8
mongo.threadsAllowedToBlockForConnectionMultiplier=4
#\u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4
mongo.connectTimeout=2000
#\u7B49\u5F85\u65F6\u95F4
mongo.maxWaitTime=2500
mongo.autoConnectRetry=true
mongo.socketKeepAlive=true
#Socket\u8D85\u65F6\u65F6\u95F4
mongo.socketTimeout=1500
mongo.slaveOk=true

mongodb-context.xml

    <!-- 定義mongo物件,對應的是mongodb官方jar包中的Mongo,replica-set設定叢集副本的ip地址和埠 -->
    <mongo:mongo id="mongo" replica-set="${mongo.hostport}">
        <!-- 一些連線屬性的設定 -->    
        <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="1"
             write-timeout="0"
             write-fsync="true"/>        
    </mongo:mongo>
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="mongo" />
        <constructor-arg name="databaseName" value="mobiledealer" />
    </bean>

6、對資料庫操作

        Mongo connection =new Mongo();
         DB db=connection.getDB("mobiledealer");
         DBCollection chemicals=db.getCollection("System_Log");
        // BasicDBObject doc=new BasicDBObject();
         JSONObject userd = new JSONObject();
         userd.put("name", "cc");
         userd.put("age", "89");
         DBObject userDb = (DBObject) com.mongodb.util.JSON.parse(userd.toString());
         chemicals.insert(userDb);

連線mongodb資料庫,並把資料存入到mongodb資料庫相應的‘表’中