package com.wlsq.oauth.dao.impl;
import java.util.List;
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 com.wlsq.oauth.dao.IUserDao;
import com.wlsq.oauth.dao.support.AbstractBaseMongoTemplete;
import com.wlsq.oauth.entity.User;
public class UserDao extends AbstractBaseMongoTemplete implements IUserDao {
/**
* 新增
* <br>------------------------------<br>
* @param user
*/
public void insert(User user) {
// TODO Auto-generated method stub
mongoTemplate.insert(user);
}
/**
* 批量新增
* <br>------------------------------<br>
* @param users
*/
public void insertAll(List<User> users) {
// TODO Auto-generated method stub
mongoTemplate.insertAll(users);
}
/**
* 删除,按主键id, 如果主键的值为null,删除会失败
* <br>------------------------------<br>
* @param id
*/
public void deleteById(String id) {
// TODO Auto-generated method stub
User user = new User(id, null, 0);
mongoTemplate.remove(user);
}
/**
* 按条件删除
* <br>------------------------------<br>
* @param criteriaUser
*/
public void delete(User criteriaUser) {
// TODO Auto-generated method stub
Criteria criteria = Criteria.where("age").gt(criteriaUser.getAge());;
Query query = new Query(criteria);
mongoTemplate.remove(query, User.class);
}
/**
* 删除全部
* <br>------------------------------<br>
*/
public void deleteAll() {
// TODO Auto-generated method stub
mongoTemplate.dropCollection(User.class);
}
/**
* 按主键修改,
* 如果文档中没有相关key 会新增 使用$set修改器
* <br>------------------------------<br>
* @param user
*/
public void updateById(User user) {
// TODO Auto-generated method stub
Criteria criteria = Criteria.where("id").is(user.getId());
Query query = new Query(criteria);
Update update = Update.update("age", user.getAge()).set("name", user.getName());
mongoTemplate.updateFirst(query, update, User.class);
}
/**
* 修改多条
* <br>------------------------------<br>
* @param criteriaUser
* @param user
*/
public void update(User criteriaUser, User user) {
// TODO Auto-generated method stub
Criteria criteria = Criteria.where("age").gt(criteriaUser.getAge());;
Query query = new Query(criteria);
Update update = Update.update("name", user.getName()).set("age", user.getAge());
mongoTemplate.updateMulti(query, update, User.class);
}
/**
* 根据主键查询
* <br>------------------------------<br>
* @param id
* @return
*/
public User findById(String id) {
// TODO Auto-generated method stub
return mongoTemplate.findById(id, User.class);
}
/**
* 查询全部
* <br>------------------------------<br>
* @return
*/
public List<User> findAll() {
// TODO Auto-generated method stub
return mongoTemplate.findAll(User.class);
}
/**
* 按条件查询, 分页
* <br>------------------------------<br>
* @param criteriaUser
* @param skip
* @param limit
* @return
*/
public List<User> find(User criteriaUser, int skip, int limit) {
// TODO Auto-generated method stub
Query query = getQuery(criteriaUser);
query.skip(skip);
query.limit(limit);
return mongoTemplate.find(query, User.class);
}
/**
* 根据条件查询出来后 再去修改
* <br>------------------------------<br>
* @param criteriaUser 查询条件
* @param updateUser 修改的值对象
* @return
*/
public User findAndModify(User criteriaUser, User updateUser) {
// TODO Auto-generated method stub
Query query = getQuery(criteriaUser);
Update update = Update.update("age", updateUser.getAge()).set("name", updateUser.getName());
return mongoTemplate.findAndModify(query, update, User.class);
}
/**
* 查询出来后 删除
* <br>------------------------------<br>
* @param criteriaUser
* @return
*/
public User findAndRemove(User criteriaUser) {
// TODO Auto-generated method stub
Query query = getQuery(criteriaUser);
return mongoTemplate.findAndRemove(query, User.class);
}
/**
* count
* <br>------------------------------<br>
* @param criteriaUser
* @return
*/
public long count(User criteriaUser) {
// TODO Auto-generated method stub
Query query = getQuery(criteriaUser);
return mongoTemplate.count(query, User.class);
}
/**
*
* <br>------------------------------<br>
* @param criteriaUser
* @return
*/
private Query getQuery(User criteriaUser) {
if (criteriaUser == null) {
criteriaUser = new User();
}
Query query = new Query();
if (criteriaUser.getId() != null) {
Criteria criteria = Criteria.where("id").is(criteriaUser.getId());
query.addCriteria(criteria);
}
if (criteriaUser.getAge() > 0) {
Criteria criteria = Criteria.where("age").gt(criteriaUser.getAge());
query.addCriteria(criteria);
}
if (criteriaUser.getName() != null) {
Criteria criteria = Criteria.where("name").regex("^" + criteriaUser.getName());
query.addCriteria(criteria);
}
return query;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
ssm框架集成apache cxf2.7 (104个子文件)
UserDao.class 6KB
UserDaoTest.class 5KB
MemecacheTest.class 2KB
AbstractBaseMongoTemplete.class 1KB
HelloWorldImpl.class 1KB
User.class 1KB
IUserDao.class 1KB
SpringQtz.class 1KB
HelloWorld.class 384B
.classpath 5KB
org.eclipse.wst.common.component 459B
org.eclipse.wst.jsdt.ui.superType.container 49B
cxf-2.7.3.jar 6.6MB
aspectjweaver.jar 1.8MB
druid-1.0.9.jar 1.76MB
jackson-all-1.9.5.jar 1.07MB
spring-context-4.0.2.RELEASE.jar 951KB
spring-core-4.0.2.RELEASE.jar 938KB
mysql-connector-java-5.1.30-bin.jar 932KB
freemarker-2.3.19.jar 909KB
mybatis-3.2.6.jar 696KB
spring-beans-4.0.2.RELEASE.jar 653KB
spring-web-4.0.4.RELEASE.jar 653KB
spring-webmvc-4.0.2.RELEASE.jar 645KB
commons-collections-3.2.1.jar 562KB
log4j-1.2.17.jar 478KB
spring-test-4.0.2.RELEASE.jar 437KB
quartz-1.8.5.jar 436KB
httpclient-4.2.1.jar 417KB
spring-jdbc-4.0.2.RELEASE.jar 410KB
mongo-java-driver-2.10.1.jar 389KB
standard-1.1.2.jar 384KB
fastjson-1.1.39.jar 349KB
spring-aop-4.0.2.RELEASE.jar 344KB
spring-data-mongodb-1.1.0.RELEASE.jar 306KB
httpcore-nio-4.2.2.jar 279KB
commons-lang-2.6.jar 278KB
commons-net-3.1.jar 267KB
spring-data-commons-core-1.4.0.RELEASE.jar 259KB
commons-codec-1.9.jar 258KB
spring-tx-4.0.2.RELEASE.jar 242KB
junit-4.11.jar 239KB
commons-beanutils-1.9.2.jar 228KB
httpcore-4.2.2.jar 218KB
spring-expression-4.0.2.RELEASE.jar 200KB
commons-io-2.4.jar 181KB
servlet-api.jar 173KB
xmlschema-core-2.0.3.jar 159KB
commons-dbcp-1.4.jar 157KB
wsdl4j-1.6.2.jar 145KB
spring-context-support-4.0.2.RELEASE.jar 132KB
aspectjrt.jar 112KB
commons-pool-1.6.jar 109KB
commons-pool2-2.2.jar 106KB
httpasyncclient-4.0-beta3.jar 80KB
java_memcached-release_2.6.6.jar 80KB
spring-oxm-4.0.2.RELEASE.jar 78KB
neethi-3.0.2.jar 70KB
commons-fileupload-1.3.1.jar 67KB
commons-logging-1.2.jar 60KB
jboss-logging-3.1.0.CR2.jar 59KB
jettison-1.0.1.jar 55KB
spring-aspects-4.0.2.RELEASE.jar 51KB
mybatis-spring-1.2.2.jar 48KB
hamcrest-core-1.3.jar 44KB
slf4j-ext-1.7.7.jar 41KB
slf4j-api-1.7.7.jar 29KB
log4j-over-slf4j-1.7.7.jar 24KB
jstl-1.1.2.jar 20KB
aopalliance.jar 4KB
UserDao.java 5KB
UserDaoTest.java 4KB
IUserDao.java 2KB
MemecacheTest.java 1KB
AbstractBaseMongoTemplete.java 869B
User.java 753B
HelloWorldImpl.java 447B
SpringQtz.java 291B
HelloWorld.java 248B
.jsdtscope 658B
index.jsp 834B
MANIFEST.MF 36B
.mymetadata 294B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.jdt.core.prefs 598B
.project 2KB
log4j.properties 1KB
log4j.properties 1KB
jdbc.properties 384B
jdbc.properties 384B
memcached.properties 171B
memcached.properties 171B
spring-context.xml 6KB
spring-context.xml 6KB
spring-mvc.xml 3KB
spring-mvc.xml 3KB
spring-quartz.xml 2KB
spring-quartz.xml 2KB
web.xml 2KB
apache-cxf.xml 1KB
共 104 条
- 1
- 2
资源评论
- wangnan2012018-01-28学习中,参考
在奋斗的大道
- 粉丝: 5478
- 资源: 72
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功