我的漫漫程序之旅

          專注于JavaWeb開發(fā)
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數(shù)據(jù)加載中……

          Spring mongodb 之簡單CRUD

          官方文檔參考:http://www.mkyong.com/mongodb/  
          用MyEclipse添加maven-Project工程,在這之前你可能需要配置你的m2eclipse
          1.將maven配置成你自己安裝的版本。


          2.設(shè)置User Settings
          當然也可以修改倉庫默認目錄,打maven安裝目錄conf/setting.xml
          在<settings>節(jié)點里
          添加:<localRepository>d:/myrepository</localRepository>即可


          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.test</groupId>
            <artifactId>mongodb</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <name>springmongodb</name>
            <description>This is test case</description>
            <build>
              <plugins>
                <plugin>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                  </configuration>
                </plugin>
              </plugins>
            </build>
            
            <repositories>
                  <repository>
                      <id>spring-milestone</id>
                      <name>Spring Maven MILESTONE Repository</name>
                      <url>http://maven.springframework.org/milestone</url>
                  </repository>
              </repositories>
           
              <dependencies>
                  <dependency>
                      <groupId>junit</groupId>
                      <artifactId>junit</artifactId>
                      <version>4.8.2</version>
                      <scope>test</scope>
                  </dependency>
           
                  <!-- Spring framework -->
                  <dependency>
                      <groupId>org.springframework</groupId>
                      <artifactId>spring-core</artifactId>
                      <version>3.0.5.RELEASE</version>
                  </dependency>
           
                  <dependency>
                      <groupId>org.springframework</groupId>
                      <artifactId>spring-context</artifactId>
                      <version>3.0.5.RELEASE</version>
                  </dependency>
           
                  <!-- mongodb java driver -->
                  <dependency>
                      <groupId>org.mongodb</groupId>
                      <artifactId>mongo-java-driver</artifactId>
                      <version>2.5.2</version>
                  </dependency>
           
                  <dependency>
                      <groupId>org.springframework.data</groupId>
                      <artifactId>spring-data-mongodb</artifactId>
                      <version>1.0.0.M2</version>
                  </dependency>
           
                  <dependency>
                      <groupId>cglib</groupId>
                      <artifactId>cglib</artifactId>
                      <version>2.2</version>
                  </dependency>
           
              </dependencies>
              
          </project>
          寫完pom.xml后,執(zhí)行 項目-右鍵-run-maven install 
          下載完jar包,Test 成功后,就可以寫代碼了。
          SpringMongoConfig.java
          package com.config;

          import org.springframework.context.annotation.Bean;
          import org.springframework.data.document.mongodb.MongoTemplate;
          import org.springframework.data.document.mongodb.config.AbstractMongoConfiguration;

          import com.mongodb.Mongo;

          public class SpringMongoConfig extends AbstractMongoConfiguration
          {
              //主機
              @Override
              public Mongo mongo() throws Exception {
                  return new Mongo("localhost");
              }
              //數(shù)據(jù)庫
              @Override
              public @Bean MongoTemplate mongoTemplate() throws Exception {
                  return new MongoTemplate(mongo(), "test");
              }

          }
          實體類:
          package entity;

          import java.util.List;

          public class User
          {

              private String id;
              private String username;
              private String password;
              //文檔中的集合
              private List<String> position;

              // 要有聲明默認的構(gòu)造方法,不然查詢的時候會報錯(無法實例化)
              public User()
              {

              }

              public String getId()
              {
                  return id;
              }

              public void setId(String id)
              {
                  this.id = id;
              }

              public String getUsername()
              {
                  return username;
              }

              public void setUsername(String username)
              {
                  this.username = username;
              }

              public String getPassword()
              {
                  return password;
              }

              public void setPassword(String password)
              {
                  this.password = password;
              }

              public List<String> getPosition()
              {
                  return position;
              }

              public void setPosition(List<String> position)
              {
                  this.position = position;
              }

              public User(String id, String username, String password,
                      List<String> position)
              {
                  super();
                  this.id = id;
                  this.username = username;
                  this.password = password;
                  this.position = position;
              }

              public User(String username, String password, List<String> position)
              {
                  super();
                  this.username = username;
                  this.password = password;
                  this.position = position;
              }

          }
          測試類:
          package run;

          import java.util.ArrayList;
          import java.util.Iterator;
          import java.util.List;
          import java.util.Set;

          import org.junit.Test;
          import org.springframework.context.ApplicationContext;
          import org.springframework.context.annotation.AnnotationConfigApplicationContext;
          import org.springframework.data.document.mongodb.MongoOperations;
          import org.springframework.data.document.mongodb.query.Criteria;
          import org.springframework.data.document.mongodb.query.Query;
          import org.springframework.data.document.mongodb.query.Update;

          import com.config.SpringMongoConfig;

          import entity.User;

          public class App
          {
              private ApplicationContext ctx = new AnnotationConfigApplicationContext(
                      SpringMongoConfig.class);
              private MongoOperations mongoOperations = (MongoOperations) ctx
                      .getBean("mongoTemplate");

              @Test
              public void testSave()
              {
                  List<String> list = new ArrayList<String>();
                  for(int i =0; i < 100; i ++)
                  {
                      list.add("開發(fā)" + i);
                      list.add("經(jīng)理" + i);
                      User user = new User("John" + i,"123" + i,list);
                      //第一個參數(shù):要保存的表名,默認為實例名user同名的集合(表)
                      
          //如果表不存在會自動創(chuàng)建, 表名user為關(guān)鍵字不要使用
                      mongoOperations.save("userinfo", user);
                      list.clear();
                  }
              }

              @Test
              public void testUpdate()
              {
                  mongoOperations.updateFirst("userinfo",
                          new Query(Criteria.where("username").is("John0")),
                          Update.update("password", "newpassword"));
              }

              @Test
              public void testDelete()
              {
                  mongoOperations.remove("userinfo",new Query(Criteria.where("id").is("4ffe3486b41f8ed41269a729")),User.class);
              }

              @Test
              public void testQuery()
              {
                  //輸出所有表名
                  Set<String> set = mongoOperations.getCollectionNames();
                  Iterator<String> it =  set.iterator();
                  while(it.hasNext())
                  {
                      System.out.println(it.next());
                  }
                  //user:要查詢的表名
                  List<User> users = mongoOperations.getCollection("userinfo", User.class);
                  System.out.println(users.size());
                  for(User u : users)
                  {
                      System.out.println(u.getId());
                  }
              }

          }

          源碼下載

          posted on 2012-07-12 10:42 々上善若水々 閱讀(5427) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

          主站蜘蛛池模板: 仁怀市| 南京市| 奉贤区| 吉隆县| 肃北| 蓬溪县| 依兰县| 连平县| 灵台县| 赣榆县| 临海市| 江门市| 阳朔县| 清新县| 崇左市| 会理县| 博爱县| 安庆市| 都安| 布拖县| 分宜县| 巢湖市| 宜兰市| 景泰县| 潮州市| 卢龙县| 大方县| 合肥市| 台江县| 金寨县| 德令哈市| 洪雅县| 姜堰市| 广汉市| 馆陶县| 丹阳市| 武城县| 武穴市| 当阳市| 文昌市| 长宁县|