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資料庫相應的‘表’中