package cn.dao.impl;
import java.util.List;
import javax.annotation.Resource;
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.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;
import com.mongodb.WriteResult;
import cn.dao.EmsDao;
import cn.pojo.ems;
@Component
public class EmsDaoImpl implements EmsDao {
//注意要引入注解
@Resource(name="mongoTemplate")
MongoTemplate mongoTemplate;
/**
* 查询单个
* @param name
* @return
*/
@Override
public ems getEms(String name) {
Criteria criteria = new Criteria();
// 使用where和is设置要匹配的key和value
criteria.where("name").is(name);
// 将条件添加进Query里
Query query = new Query();
query.addCriteria(criteria);
// 使用方法查询,Students.class是用实体类的名字取匹配mongodb的集合名
ems findOne = mongoTemplate.findOne(query, ems.class);
// mongodb通过实体的属性名自动匹配属性
return findOne;
}
/**
* 查询所有
* @return
*/
@Override
public List<ems> getAllEms() {
List<ems> findAll = mongoTemplate.findAll(ems.class);
return findAll;
}
/**
* 更新
* @param name
* @return
*/
@Override
public int update(String name) {
Query query = new Query();
query.addCriteria(Criteria.where("name").is(name));
Update up = new Update();
up.set("age", 130);
WriteResult multi = mongoTemplate.updateMulti(query, up, ems.class);
System.out.println(multi.getN());
return multi.getN();
}
/**
* 插入
* @param e
*/
@Override
public void insert(ems e) {
mongoTemplate.insert(e);
System.out.println(e.get_id());
}
/**
* 删除
* @param name
* @return
*/
@Override
public int delEms(String name) {
Query query = new Query();
query.addCriteria(Criteria.where("name").is(name));
WriteResult multi = mongoTemplate.remove(query, ems.class);
System.out.println(multi.getN());
return multi.getN();
}
}