目录
MongoDB访问操作
基于驱动包操作
基于SpringData操作
MAVEN工具应用
MongoTemplate配置
SpringMVC
MongoDB访问操作
基于驱动包操作
添加mongo-java-driver.jar驱动包
使用API添加操作
@Test public void test1(){ MongoClient mongo = new MongoClient("localhost", 27017); //use java24 MongoDatabase java24 = mongo.getDatabase("java24"); //db.dept.insert() MongoCollection<Document> dept = java24.getCollection("dept"); Document doc = new Document(); doc.put("_id", 40); doc.put("dname", "UI"); doc.put("loc", "北京"); dept.insertOne(doc); mongo.close(); }
使用API查询操作
@Test public void test2(){ MongoClient mongo = new MongoClient("localhost", 27017); //use java24 MongoDatabase java24 = mongo.getDatabase("java24"); //db.dept.find() MongoCollection<Document> dept = java24.getCollection("dept"); MongoCursor<Document> cursor = dept.find().iterator(); while(cursor.hasNext()){ Document doc = cursor.next(); System.out.println(doc.getObjectId("_id")+" " +doc.getString("dname")+" "+doc.getString("loc")); } mongo.close(); }
基于SpringData操作
添加jar包
spring: ioc、aop、dao、mongo-java-driver、spring-data-mongodb
spring配置
<mongo:db-factory id="mongoFactory" host="localhost" port="27017" dbname="java24"/> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg index="0" ref="mongoFactory"> </constructor-arg> </bean>
MongoTemplate应用
@Test public void test3(){ String conf = "applicationContext.xml"; ApplicationContext ac = new ClassPathXmlApplicationContext(conf); MongoTemplate template = ac.getBean("mongoTemplate",MongoTemplate.class); Dept dept = new Dept(); dept.setId("11"); dept.setDeptno(40); dept.setDname("H5"); dept.setLoc("北京"); template.insert(dept);//默认写入dept集合中 } @Test public void test4(){ String conf = "applicationContext.xml"; ApplicationContext ac = new ClassPathXmlApplicationContext(conf); MongoTemplate template = ac.getBean("mongoTemplate",MongoTemplate.class); //查询dept集合所有记录 List<Dept> list = template.findAll(Dept.class); for(Dept dept:list){ System.out.println(dept.getId()+" "+dept.getDeptno()+" "+dept.getDname()+" "+dept.getLoc()); } } @Test public void test5(){ String conf = "applicationContext.xml"; ApplicationContext ac = new ClassPathXmlApplicationContext(conf); MongoTemplate template = ac.getBean("mongoTemplate",MongoTemplate.class); Query query = new Query(); //添加where deptno>20条件 query.addCriteria(Criteria.where("deptno").gt(20)); //query.skip(2).limit(2);//分页方法,跳过2条取2条 query.limit(2);//取前2条 List<Dept> list = template.find(query, Dept.class); for(Dept dept:list){ System.out.println(dept.getId()+" "+dept.getDeptno()+" "+dept.getDname()+" "+dept.getLoc()); } }
MAVEN工具应用
案例
通过SpringMVC+MongoDB实现一套Restful服务。
工程搭建
- springmvc - spring-data-mongodb - junit/spring-test - applicationContext.xml
MongoTemplate配置
<mongo:db-factory id=“mongoFactory” host=“localhost” port=“27017” dbname=“java24”/>
SpringMVC
/book POST 添加 /book/xx POST 更新 /book/xx GET 查询 /book GET 查询所有 /book POST–> DispatcherServlet–> HandlerMapping–> BookController–> BookService–> BookDao–> 返回JSON结果