====== spring整合mongodb ====== ===== 加入pom依赖 ===== org.springframework.data spring-data-mongodb 1.2.1.RELEASE ===== 引入placeholder ===== ===== application-cache-mongodb.xml ===== ===== mongodb.properties ===== # Mongodb settings mongodb.host=121.43.104.34 mongodb.port=27017 ===== Student.java ===== package com.gxx.record.base.vo; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; /** *
*
Title:
*
* mongodb学生实体 *
*
Description:
*
*

none *

*
* * @author Administrator * @version 1.0, 2015年7月27日 * @since record * */ @Document(collection="student") public class Student { @Id private String id; private String name; private Friend friend; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Friend getFriend() { return friend; } public void setFriend(Friend friend) { this.friend = friend; } }
===== Friend.java ===== package com.gxx.record.base.vo; /** *
*
Title:
*
* mongodb朋友实体 *
*
Description:
*
*

none *

*
* * @author Administrator * @version 1.0, 2015年7月27日 * @since record * */ public class Friend { String name; boolean sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isSex() { return sex; } public void setSex(boolean sex) { this.sex = sex; } }
===== MongodbDto.java ===== package com.gxx.record.dto; /** *
*
Title:
*
* mongodb传输对象 *
*
Description:
*
*

none *

*
* * @author Administrator * @version 1.0, 2015年7月27日 * @since record * */ public class MongodbDto extends BaseDto { private String name;//姓名 private String friendName;//朋友姓名 private boolean friendSex;//朋友性别 public String getName() { return name; } public void setName(String name) { this.name = name; } public String getFriendName() { return friendName; } public void setFriendName(String friendName) { this.friendName = friendName; } public boolean isFriendSex() { return friendSex; } public void setFriendSex(boolean friendSex) { this.friendSex = friendSex; } }
===== MongodbService.java ===== package com.gxx.record.service; import com.gxx.record.base.vo.Student; import com.gxx.record.dto.MongodbDto; /** *
*
Title:
*
* mongodb服务接口
*
Description:
*
*

* none

*
* * @author Administrator * @version 1.0, 2015年7月27日 * @since record * */ public interface MongodbService { /** * save * * @param mongodbDto * @return */ public boolean save(MongodbDto mongodbDto); /** * get * * @param name * @return */ public Student get(String name); }
===== MongodbServiceImpl.java ===== package com.gxx.record.service.impl; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import com.gxx.record.base.vo.Friend; import com.gxx.record.base.vo.Student; import com.gxx.record.dto.MongodbDto; import com.gxx.record.service.MongodbService; /** *
*
Title:
*
* mongodb服务实现类 *
*
Description:
*
*

none *

*
* * @author Administrator * @version 1.0, 2015年7月23日 * @since record * */ @Service("mongodbService") public class MongodbServiceImpl implements MongodbService { /** * 日志处理器 */ private final Logger logger = Logger.getLogger(MongodbServiceImpl.class); @Autowired private MongoTemplate mongoTemplate; @Override public boolean save(MongodbDto mongodbDto) { Student student = get(mongodbDto.getName()); if(null == student){ student = new Student(); } student.setName(mongodbDto.getName()); Friend friend = new Friend(); friend.setName(mongodbDto.getFriendName()); friend.setSex(mongodbDto.isFriendSex()); student.setFriend(friend); mongoTemplate.save(student); logger.info("插入mongodb完成!"); return false; } @Override public Student get(String name) { Query query = new Query(); query.addCriteria(new Criteria("name").is(name)); Student student = mongoTemplate.findOne(query, Student.class); logger.info("查询到mongodb实体:" + student); return student; } }
===== MongodbController.java ===== package com.gxx.record.web.mongodb; import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.gxx.record.base.vo.Student; import com.gxx.record.dto.MongodbDto; import com.gxx.record.service.MongodbService; /** *
*
Title:
*
* MongodbController *
*
Description:
*
*

none *

*
* * @author Administrator * @version 1.0, 2015年7月27日 * @since record * */ @Controller @RequestMapping("/mongodb/") public class MongodbController { /** * 日志处理器 */ private final Logger logger = Logger.getLogger(MongodbController.class); @Autowired private MongodbService mongodbService; @RequestMapping(value = "/preMongodbFtl", method = RequestMethod.GET) public String preMongodbFtl() { return "mongodb/preMongodbFtl"; } /** * 设置 * @param request * @param mongodbDto * @return */ @RequestMapping(value = "/save",produces="application/json") public @ResponseBody MongodbDto save(HttpServletRequest request, MongodbDto mongodbDto) { logger.info("设置:姓名=[" + mongodbDto.getName() + "],朋友姓名=[" + mongodbDto.getFriendName() + "]," + "朋友性别=[" + mongodbDto.isFriendSex() + "]"); /** * 1.设置值 */ mongodbService.save(mongodbDto); /** * 2.返回结果 */ mongodbDto.setSuccess(true); mongodbDto.setMessage("设置成功!"); return mongodbDto; } /** * 获取值 * @param request * @param mongodbDto * @return */ @RequestMapping(value = "/get",produces="application/json") public @ResponseBody MongodbDto get(HttpServletRequest request, MongodbDto mongodbDto) { logger.info("获取值:姓名=[" + mongodbDto.getName() + "]"); /** * 1.获取学生 */ Student student = mongodbService.get(mongodbDto.getName()); /** * 2.返回结果 */ if(student == null){ mongodbDto.setSuccess(false); mongodbDto.setMessage("该姓名[" + mongodbDto.getName() + "]不存在"); } else { mongodbDto.setSuccess(true); mongodbDto.setMessage("获取成功"); mongodbDto.setFriendName(student.getFriend().getName()); mongodbDto.setFriendSex(student.getFriend().isSex()); } return mongodbDto; } }
===== preMongodbFtl.ftl ===== mongodb页面
姓名:
朋友姓名:
朋友性别:
姓名:
===== 演示 ===== {{ :分享:技术:mongodb:mongodb_1.png?300 |}} {{ :分享:技术:mongodb:mongodb_2.png?500 |}} {{ :分享:技术:mongodb:mongodb_3.png?300 |}} {{ :分享:技术:mongodb:mongodb_4.png?500 |}} gxx@iZ23goxo66aZ:~$ mongo #进入mongodb MongoDB shell version: 2.4.9 #当前版本 connecting to: test #默认连接test数据库 > show dbs #查看所有数据库,看到程序自动创建的record数据库 local 0.078125GB record 0.203125GB test 0.078125GB > use record #切换到record数据库 switched to db record > show collections #查看record数据库中所有的集合 student system.indexes > db.student.find() #查看student集合中所有的文档 { "_id" : ObjectId("55b5958244f43fa4565e6079"), "_class" : "com.gxx.record.base.vo.Student", "name" : "关向辉", "friend" : { "name" : "沈云龙", "sex" : true } } { "_id" : ObjectId("55b595e944f43fa4565e607a"), "_class" : "com.gxx.record.base.vo.Student", "name" : "tt", "friend" : { "name" : "aa", "sex" : true } } > exit #退出mongodb bye gxx@iZ23goxo66aZ:~$