我的漫漫程序之旅

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

          Spring mongodb 之簡(jiǎn)單CRUD

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


          2.設(shè)置User Settings
          當(dāng)然也可以修改倉(cāng)庫(kù)默認(rèn)目錄,打maven安裝目錄conf/setting.xml
          在<settings>節(jié)點(diǎn)里
          添加:<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>
          寫(xiě)完pom.xml后,執(zhí)行 項(xiàng)目-右鍵-run-maven install 
          下載完jar包,Test 成功后,就可以寫(xiě)代碼了。
          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
          {
              //主機(jī)
              @Override
              public Mongo mongo() throws Exception {
                  return new Mongo("localhost");
              }
              //數(shù)據(jù)庫(kù)
              @Override
              public @Bean MongoTemplate mongoTemplate() throws Exception {
                  return new MongoTemplate(mongo(), "test");
              }

          }
          實(shí)體類(lèi):
          package entity;

          import java.util.List;

          public class User
          {

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

              // 要有聲明默認(rèn)的構(gòu)造方法,不然查詢(xún)的時(shí)候會(huì)報(bào)錯(cuò)(無(wú)法實(shí)例化)
              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;
              }

          }
          測(cè)試類(lèi):
          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("開(kāi)發(fā)" + i);
                      list.add("經(jīng)理" + i);
                      User user = new User("John" + i,"123" + i,list);
                      //第一個(gè)參數(shù):要保存的表名,默認(rèn)為實(shí)例名user同名的集合(表)
                      
          //如果表不存在會(huì)自動(dòng)創(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:要查詢(xún)的表名
                  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 々上善若水々 閱讀(5438) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 數(shù)據(jù)庫(kù)

          主站蜘蛛池模板: 偃师市| 沅江市| 九寨沟县| 眉山市| 拜泉县| 博乐市| 孙吴县| 田林县| 宜川县| 临沭县| 巩义市| 扶风县| 娱乐| 白城市| 焦作市| 舟曲县| 南涧| 乌鲁木齐市| 邯郸县| 鄯善县| 丰顺县| 咸宁市| 龙海市| 金山区| 措美县| 大新县| 阜新市| 孟连| 蒙城县| 尉犁县| 宿州市| 莎车县| 齐齐哈尔市| 尼勒克县| 浦北县| 临潭县| 长春市| 文安县| 闽侯县| 临朐县| 凤阳县|