SpringData MongoDB紹介(一)-入門
6870 ワード
SpringData MongoDB紹介(一)-入門
本文ではSpringData MongoDBの操作エンティティとデータベースの使い方を紹介します.本文では最も基本的な例を紹介します.複雑な例は後の文章で紹介します.
SpringData MongoDB概要
SpringData MongoDBはspring dataのサブプロジェクトで、MongoDBに対する操作をパッケージ化するために使われていますが、現在の最新バージョンは1.6.1です.(2015年1月18日まで)
The Spring Data MongoDB project provides integration with the MongoDB document database.Key functional aras of Spring Data MongoDB ara POJO centric model for interacting with a MongoDB Collection andarewtions.
MongoDBは無関係データベースです.ここでは詳しく紹介しません.
SprigData MongoDBには以下の特徴があります. Spring configration support using Java based@Configration clases or an XML namespace for a Mongo driver instance and replica sets. MongoTemplate helper clast that increas productivity performing common Mongo operation.Includes integrated oject mapping between documents and POJOs. Exception trnslation into Spring's potable Data Acception hierarch Feature Rich Object Mapping integrated with Spring's Coversion Service Annotation based mapping metadata but extensit to support other metadata formas Persistence and mapping lifecycle events Low-level mapping using MongoReader/MongoWriter abstractions Java based Query,Criteria,and Update DSLs Automatic implemention of Repository interfaces including support for custom finder methods. Query DSL integration to support type-safe queries. Cross-store persistance-support for JPA Entties with fields tranparently persisted/retrieved using MongoDB Log 4 j logp apender GeoSpate integration Map-reeduce integration JMX administration and monitoring CDI support for repositories GridFS support 準備工作
事前にmongodbデータベースをインストールする必要があります.ダウンロード
サンプルコード
エンティティクラス定義 Spring Data MongoDB Access Data with MongoDB Spring Data MongoDB-Reference Dcumentation
本文ではSpringData MongoDBの操作エンティティとデータベースの使い方を紹介します.本文では最も基本的な例を紹介します.複雑な例は後の文章で紹介します.
SpringData MongoDB概要
SpringData MongoDBはspring dataのサブプロジェクトで、MongoDBに対する操作をパッケージ化するために使われていますが、現在の最新バージョンは1.6.1です.(2015年1月18日まで)
The Spring Data MongoDB project provides integration with the MongoDB document database.Key functional aras of Spring Data MongoDB ara POJO centric model for interacting with a MongoDB Collection andarewtions.
MongoDBは無関係データベースです.ここでは詳しく紹介しません.
SprigData MongoDBには以下の特徴があります.
事前にmongodbデータベースをインストールする必要があります.ダウンロード
サンプルコード
エンティティクラス定義
package com.chzhao.mongodbtest;
import org.springframework.data.annotation.Id;
public class Customer {
@Id
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
private String firstName;
private String lastName;
public Customer() {}
public Customer(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
@Override
public String toString() {
return String.format(
"Customer[id=%s, firstName='%s', lastName='%s']",
id, firstName, lastName);
}
}
操作クラスの定義package com.chzhao.mongodbtest;
import java.util.List;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface CustomerRepository extends MongoRepository<Customer, String> {
public Customer findByFirstName(String firstName);
public List<Customer> findByLastName(String lastName);
public long deleteByFirstName(String firstName);
public long countByLastName(String lastName);
}
呼び出し方法package com.chzhao.mongodbtest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@EnableAutoConfiguration
public class Application implements CommandLineRunner {
@Autowired
private CustomerRepository repository;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
public void run(String... args) throws Exception {
for (int i = 0; i < 10000; i++) {
repository.save(new Customer(i + "", "zhao"));
}
long cou = repository.countByLastName("zhao");
System.out.println(cou);
System.out.println("Customers found with findAll():");
System.out.println("-------------------------------");
for (Customer customer : repository.findAll()) {
System.out.println(customer);
}
System.out.println();
repository.deleteByFirstName("zhao");
// fetch an individual customer
System.out.println("Customer found with findByFirstName('Alice'):");
System.out.println("--------------------------------");
System.out.println(repository.findByFirstName("Alice"));
System.out.println("Customers found with findByLastName('Smith'):");
System.out.println("--------------------------------");
for (Customer customer : repository.findByLastName("zhao")) {
System.out.println(customer);
}
}
}
pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.chzhao</groupId>
<artifactId>mongodbtest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.11.4</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.6.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>1.1.10.RELEASE</version>
</dependency>
</dependencies>
</project>
参照