跳至内容
wiki
用户工具
登录
站点工具
工具
显示页面
修订记录
反向链接
最近更改
媒体管理器
网站地图
登录
最近更改
媒体管理器
网站地图
您的足迹:
分享:技术:mongodb:spring整合mongodb
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== spring整合mongodb ====== ===== 加入pom依赖 ===== <code xml pom.xml> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.2.1.RELEASE</version> </dependency> </code> ===== 引入placeholder ===== <code xml application-context.xml> <!-- 配置文件位置 --> <context:property-placeholder location="classpath:/mongodb.properties" /> </code> ===== application-cache-mongodb.xml ===== <code xml application-cache-mongodb.xml> <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mongo="http://www.springframework.org/schema/data/mongo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <mongo:mongo host="${mongodb.host}" port="${mongodb.port}" /> <!-- mongo的工厂,通过它来取得mongo实例,dbname为mongodb的数据库名,没有的话会自动创建 --> <mongo:db-factory dbname="record" mongo-ref="mongo" /> <!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 --> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /> </bean> <!-- 映射转换器,扫描back-package目录下的文件,根据注释,把它们作为mongodb的一个collection的映射 --> <mongo:mapping-converter base-package="com.gxx.record.base.vo" /> </beans> </code> ===== mongodb.properties ===== <code txt mongodb.properties> # Mongodb settings mongodb.host=121.43.104.34 mongodb.port=27017 </code> ===== Student.java ===== <code java Student.java> package com.gxx.record.base.vo; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; /** * <dl> * <dt><b>Title:</b></dt> * <dd> * mongodb学生实体 * </dd> * <dt><b>Description:</b></dt> * <dd> * <p>none * </dd> * </dl> * * @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; } } </code> ===== Friend.java ===== <code java Friend.java> package com.gxx.record.base.vo; /** * <dl> * <dt><b>Title:</b></dt> * <dd> * mongodb朋友实体 * </dd> * <dt><b>Description:</b></dt> * <dd> * <p>none * </dd> * </dl> * * @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; } } </code> ===== MongodbDto.java ===== <code java MongodbDto.java> package com.gxx.record.dto; /** * <dl> * <dt><b>Title:</b></dt> * <dd> * mongodb传输对象 * </dd> * <dt><b>Description:</b></dt> * <dd> * <p>none * </dd> * </dl> * * @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; } } </code> ===== MongodbService.java ===== <code java MongodbService.java> package com.gxx.record.service; import com.gxx.record.base.vo.Student; import com.gxx.record.dto.MongodbDto; /** * <dl> * <dt><b>Title:</b></dt> * <dd> * mongodb服务接口</dd> * <dt><b>Description:</b></dt> * <dd> * <p> * none</dd> * </dl> * * @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); } </code> ===== MongodbServiceImpl.java ===== <code java 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; /** * <dl> * <dt><b>Title:</b></dt> * <dd> * mongodb服务实现类 * </dd> * <dt><b>Description:</b></dt> * <dd> * <p>none * </dd> * </dl> * * @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; } } </code> ===== MongodbController.java ===== <code java 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; /** * <dl> * <dt><b>Title:</b></dt> * <dd> * MongodbController * </dd> * <dt><b>Description:</b></dt> * <dd> * <p>none * </dd> * </dl> * * @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; } } </code> ===== preMongodbFtl.ftl ===== <code html preMongodbFtl.ftl> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>mongodb页面</title> </head> <body> <form action="/record/mongodb/save.htm" method="post"> <table border="1"> <tr><td>姓名:</td><td><input type="text" name="name"/></td></tr> <tr><td>朋友姓名:</td><td><input type="text" name="friendName"/></td></tr> <tr> <td>朋友性别:</td> <td> <select name="friendSex"> <option value="true">男</option> <option value="false">女</option> </select> </td> </tr> <tr><td colspan="2" align="center"><input type="submit" value="设置"/></td></tr> </table> </form> <form action="/record/mongodb/get.htm" method="post"> <table border="1"> <tr><td>姓名:</td><td><input type="text" name="name"/></td></tr> <tr><td colspan="2" align="center"><input type="submit" value="获取"/></td></tr> </table> </form> </body> </html> </code> ===== 演示 ===== {{ :分享:技术:mongodb:mongodb_1.png?300 |}} {{ :分享:技术:mongodb:mongodb_2.png?500 |}} {{ :分享:技术:mongodb:mongodb_3.png?300 |}} {{ :分享:技术:mongodb:mongodb_4.png?500 |}} <code> 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:~$ </code>
分享/技术/mongodb/spring整合mongodb.txt
· 最后更改: 2015/07/27 10:52 由
gxx
页面工具
显示页面
修订记录
反向链接
回到顶部