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:~$