擁抱NoSQL--談Spring Data MongoDB的簡單使用

來源:互聯網
上載者:User

標籤:blog   http   io   ar   os   使用   java   for   sp   

先說說MongoDB是什麼。

MongoDB是一個介於關聯式資料庫和非關聯式資料庫之間的產品,是非關聯式資料庫當中功能最豐富,最像關聯式資料庫的。他支援的資料結構非常鬆散,是類似json的bjson格式,因此可以儲存比較複雜的資料類型。Mongo最大的特點是他支援的查詢語言非常強大,其文法有點類似於物件導向的查詢語言,幾乎可以實作類別似關聯式資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。 它的特點是高效能、易部署、易使用,儲存資料非常方便。主要功能特性有: 面向集合儲存,易儲存物件類型的資料。模式自由。支援動態查詢。支援完全索引,包含內部對象。支援查詢。支援複製和故障恢複。使用高效的位元據儲存,包括大型物件(如視頻等)。自動處理片段,以支援雲端運算層次的擴充性支援RUBY,PYTHON,JAVA,C++,PHP等多種語言。檔案儲存體格式為BSON(一種JSON的擴充)可通過網路訪問

MongoDB官網也有各語言所用的API,當然也有Java的了。但是平日寫的東西大部分是基於Spring架構的,自然希望對於資料庫的操作也在Spring的掌控之下。前幾日才Spring的官網看到了SPRING DATA MONGODB,對此高度興趣稍微試了一下。

10月24日發布的是Spring Data MongoDB 1.0.0.M5 Released。自然還需要Spring Framework哈。

首先引用相關的包,主要是以下兩個:

spring-data-mongodb-1.0.0.M4.jar

spring-data-commons-1.2.0.M1.jar

其他諸如mongo-java-driver.jar的還是需要的,看自己的需要。

下面開始我們的操作了。

1.首先註冊一個Mongo的執行個體

(1)方法一

@Configuration
public class AppConfig {
public @Bean Mongo mongo() throws UnknownHostException {
return new Mongo("localhost"); //如果是遠端就填IP
}
}
(2)方法二: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:context="http://www.springframework.org/schema/context"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation=
"http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<mongo:mongo host="localhost" port="27017"/>
</beans>

還有一些細節可以設定:
<mongo:mongo host="localhost" port="27017">
<mongo:options connections-per-host="8"
threads-allowed-to-block-for-connection-multiplier="4"
connect-timeout="1000" //連線逾時時間
max-wait-time="1500}" //等待時間
auto-connect-retry="true"
socket-keep-alive="true"
socket-timeout="1500" //Socket逾時時間
slave-ok="true"
write-number="1"
write-timeout="0"
write-fsync="true"/>
</mongo:mongo/>


說實在話我對於其中的幾個timeout分的不是很清楚,希望瞭解的朋友指教。
2.MongoDbFactory
這個是位於org.springframework.data.mongodb.core下的,主要有兩個方法
DB getDb() throws DataAccessException;
DB getDb(String dbName) throws DataAccessException;
現在註冊一個工廠執行個體
(1)方法一
@Configuration
public class MongoConfiguration {
public @Bean MongoDbFactory mongoDbFactory() throws Exception {
return new SimpleMongoDbFactory(new Mongo(), "databaseName");
}
}

(2)方法二:Xml配置

<mongo:db-factory dbname="database">

還有username,password的屬性可選,詳細參考文檔。

3.MongoTemplate的使用

還是先註冊一下:

public @Bean MongoTemplate mongoTemplate() throws Exception {
return new MongoTemplate(mongo(), "databaseName");
}

同樣支援Xml方式:
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg ref="mongo"/>
<constructor-arg name="databaseName" value="test"/>
</bean>
配置到這裡就差不多了。
具體的使用倒是沒有什麼可說的,參考API就可以搞定了。
最常用的:
建立 insert
儲存 save
刪除 remove
文檔地址:http://static.springsource.org/spring-data/data-mongo/docs/1.0.0.M5/api/org/springframework/data/mongodb/core/MongoTemplate.html#MongoTemplate(org.springframework.data.mongodb.MongoDbFactory)

擁抱NoSQL--談Spring Data MongoDB的簡單使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.