MongoTemplate操作mongodb
2015-07-15 10:46
615 查看
public class ExamLogDaoImpl implements ExamLogDao{
@Autowired
private MongoTemplate mongoTemplate;
/**
* 进入考试
* return uuid
*/
@Override
public String enterExamLog(Object[] args) {
Date date=new Date();
DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String logUuid=RText.getUUID();//自动生成uuid
String enterTime=format.format(date); //系统当前时间
Log_Exam_Base examL=new Log_Exam_Base();
examL.setLogUuid(logUuid);
examL.setExamId(ObjectUtils.toString(args[0], ""));
examL.setExamName(ObjectUtils.toString(args[1], ""));
examL.setEgid(ObjectUtils.toString(args[2], ""));
examL.setUserId(ObjectUtils.toString(args[3], ""));
examL.setUserName(ObjectUtils.toString(args[4], ""));
examL.setAccount(ObjectUtils.toString(args[5], ""));
examL.setClientIp(ServletActionContext.getRequest().getRemoteAddr());
examL.setEnterTime(enterTime);
mongoTemplate.insert(examL, "ExamLog");//自定义集合名插入文档
return logUuid;
}
/**
* 退出考试
*/
@Override
public void exitExamLog(Object[] args) {
Date date=new Date();
DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String exitTime=format.format(date); //系统当前时间
Query query = new Query(Criteria.where("logUuid").is(ObjectUtils.toString(args[0], "")));
Update update = new Update().set("exitTime", exitTime);
WriteResult r=mongoTemplate.upsert(query, update, "ExamLog");//根据字段修改文档
}
/**
* 答题操作
*/
@Override
public void answerTopicLog(Object[] args) {
Date date=new Date();
DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String exitTime=format.format(date); //系统当前时间
Log_Exam_Operation eolM=new Log_Exam_Operation();
eolM.setOperationTime(exitTime);
eolM.setTopicId(ObjectUtils.toString(args[1], ""));
eolM.setTopic(ObjectUtils.toString(args[2], ""));
eolM.setAnswer(ObjectUtils.toString(args[3], ""));
eolM.setAnswerContent(ObjectUtils.toString(args[4], ""));
Query query = Query.query(Criteria.where("logUuid").is(ObjectUtils.toString(args[0], "")));
Update update = new Update().addToSet("operation", eolM);
WriteResult r=mongoTemplate.upsert(query, update, "ExamLog");//根据某一字段往内嵌文档增加一条数据
}
/**
* 日志列表
*/
@Override
public PageObject getExamLogPageObject(Object[] args,Map req) {
int totalCount = 1;
int start = NumberUtils.toInt(ObjectUtils.toString(req.get("start"),"0"));
int limit = NumberUtils.toInt(ObjectUtils.toString(req.get("limit"),"25"));
List returnValue = null;
try {
Query query = new Query().limit(limit);//分页条数设置
if(args.length>=3){//条件模糊查询
if(args[0]!=null&&!"".equals(ObjectUtils.toString(args[0]))){
query.addCriteria(new Criteria("account").regex(".*?" + ObjectUtils.toString(args[0]) + ".*"));
}
if(args[1]!=null&&!"".equals(ObjectUtils.toString(args[1]))){
query.addCriteria(new Criteria("userName").regex(".*?" + ObjectUtils.toString(args[1]) + ".*"));
}
if(args[2]!=null&&!"".equals(ObjectUtils.toString(args[2]))){
query.addCriteria(new Criteria("examName").regex(".*?" + ObjectUtils.toString(args[2]) + ".*"));
}
}
query.skip(start);//跳过前start条数据
query.sort().on("enterTime", Order.DESCENDING);//按进入时间倒序排序
returnValue = mongoTemplate.find(query, Log_Exam_Base.class, "ExamLog");
totalCount = (int) mongoTemplate.count(query, "ExamLog");
} catch (Exception e) {
e.printStackTrace();
}
PageObject page = new PageObject();
page.setDatasource(returnValue);
page.setTotalCount(totalCount);
int _absolutePage = (int)Math.ceil(totalCount * 1.0/limit);
page.setAbsolutePage(_absolutePage);
int _currentPage = start/limit + 1;
page.setCurrentPage(_currentPage);
return page;
}
@Override
public List getExamLogList(Object[] args) {
List returnValue = null;
try {
Query query = new Query().limit(60000);
if(args.length>=3){
if(args[0]!=null&&!"".equals(ObjectUtils.toString(args[0]))){
query.addCriteria(new Criteria("account").regex(".*?" + ObjectUtils.toString(args[0]) + ".*"));
}
if(args[1]!=null&&!"".equals(ObjectUtils.toString(args[1]))){
query.addCriteria(new Criteria("userName").regex(".*?" + ObjectUtils.toString(args[1]) + ".*"));
}
if(args[2]!=null&&!"".equals(ObjectUtils.toString(args[2]))){
query.addCriteria(new Criteria("examName").regex(".*?" + ObjectUtils.toString(args[2]) + ".*"));
}
}
query.sort().on("enterTime", Order.DESCENDING);//按进入时间倒序排序
returnValue = mongoTemplate.find(query, Log_Exam_Base.class, "ExamLog");
} catch (Exception e) {
e.printStackTrace();
}
return returnValue;
}
/**
* 获取内嵌子文档列表数据
*/
@Override
public PageObject getExamOperation(Object[] args, Map req) {
int totalCount = 1;
int start = NumberUtils.toInt(ObjectUtils.toString(req.get("start"),"0"));
int limit = NumberUtils.toInt(ObjectUtils.toString(req.get("limit"),"25"));
List returnValue = null;
try {
Query query = new Query().limit(limit);
query.addCriteria(Criteria.where("logUuid").is(ObjectUtils.toString(args[0], "")));
query.skip(start);
query.sort().on("operationTime", Order.DESCENDING);//按操作时间倒序排序
List exmL = mongoTemplate.find(query, Log_Exam_Base.class, "ExamLog");
if(exmL.size()>0){
Log_Exam_Base em=(Log_Exam_Base) exmL.get(0);
returnValue=em.getOperation();
}
if(returnValue!=null){
totalCount = returnValue.size();
}
} catch (Exception e) {
e.printStackTrace();
}
PageObject page = new PageObject();
page.setDatasource(returnValue);
page.setTotalCount(totalCount);
int _absolutePage = (int)Math.ceil(totalCount * 1.0/limit);
page.setAbsolutePage(_absolutePage);
int _currentPage = start/limit + 1;
page.setCurrentPage(_currentPage);
return page;
}
}用到的实体类
@Autowired
private MongoTemplate mongoTemplate;
/**
* 进入考试
* return uuid
*/
@Override
public String enterExamLog(Object[] args) {
Date date=new Date();
DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String logUuid=RText.getUUID();//自动生成uuid
String enterTime=format.format(date); //系统当前时间
Log_Exam_Base examL=new Log_Exam_Base();
examL.setLogUuid(logUuid);
examL.setExamId(ObjectUtils.toString(args[0], ""));
examL.setExamName(ObjectUtils.toString(args[1], ""));
examL.setEgid(ObjectUtils.toString(args[2], ""));
examL.setUserId(ObjectUtils.toString(args[3], ""));
examL.setUserName(ObjectUtils.toString(args[4], ""));
examL.setAccount(ObjectUtils.toString(args[5], ""));
examL.setClientIp(ServletActionContext.getRequest().getRemoteAddr());
examL.setEnterTime(enterTime);
mongoTemplate.insert(examL, "ExamLog");//自定义集合名插入文档
return logUuid;
}
/**
* 退出考试
*/
@Override
public void exitExamLog(Object[] args) {
Date date=new Date();
DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String exitTime=format.format(date); //系统当前时间
Query query = new Query(Criteria.where("logUuid").is(ObjectUtils.toString(args[0], "")));
Update update = new Update().set("exitTime", exitTime);
WriteResult r=mongoTemplate.upsert(query, update, "ExamLog");//根据字段修改文档
}
/**
* 答题操作
*/
@Override
public void answerTopicLog(Object[] args) {
Date date=new Date();
DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String exitTime=format.format(date); //系统当前时间
Log_Exam_Operation eolM=new Log_Exam_Operation();
eolM.setOperationTime(exitTime);
eolM.setTopicId(ObjectUtils.toString(args[1], ""));
eolM.setTopic(ObjectUtils.toString(args[2], ""));
eolM.setAnswer(ObjectUtils.toString(args[3], ""));
eolM.setAnswerContent(ObjectUtils.toString(args[4], ""));
Query query = Query.query(Criteria.where("logUuid").is(ObjectUtils.toString(args[0], "")));
Update update = new Update().addToSet("operation", eolM);
WriteResult r=mongoTemplate.upsert(query, update, "ExamLog");//根据某一字段往内嵌文档增加一条数据
}
/**
* 日志列表
*/
@Override
public PageObject getExamLogPageObject(Object[] args,Map req) {
int totalCount = 1;
int start = NumberUtils.toInt(ObjectUtils.toString(req.get("start"),"0"));
int limit = NumberUtils.toInt(ObjectUtils.toString(req.get("limit"),"25"));
List returnValue = null;
try {
Query query = new Query().limit(limit);//分页条数设置
if(args.length>=3){//条件模糊查询
if(args[0]!=null&&!"".equals(ObjectUtils.toString(args[0]))){
query.addCriteria(new Criteria("account").regex(".*?" + ObjectUtils.toString(args[0]) + ".*"));
}
if(args[1]!=null&&!"".equals(ObjectUtils.toString(args[1]))){
query.addCriteria(new Criteria("userName").regex(".*?" + ObjectUtils.toString(args[1]) + ".*"));
}
if(args[2]!=null&&!"".equals(ObjectUtils.toString(args[2]))){
query.addCriteria(new Criteria("examName").regex(".*?" + ObjectUtils.toString(args[2]) + ".*"));
}
}
query.skip(start);//跳过前start条数据
query.sort().on("enterTime", Order.DESCENDING);//按进入时间倒序排序
returnValue = mongoTemplate.find(query, Log_Exam_Base.class, "ExamLog");
totalCount = (int) mongoTemplate.count(query, "ExamLog");
} catch (Exception e) {
e.printStackTrace();
}
PageObject page = new PageObject();
page.setDatasource(returnValue);
page.setTotalCount(totalCount);
int _absolutePage = (int)Math.ceil(totalCount * 1.0/limit);
page.setAbsolutePage(_absolutePage);
int _currentPage = start/limit + 1;
page.setCurrentPage(_currentPage);
return page;
}
@Override
public List getExamLogList(Object[] args) {
List returnValue = null;
try {
Query query = new Query().limit(60000);
if(args.length>=3){
if(args[0]!=null&&!"".equals(ObjectUtils.toString(args[0]))){
query.addCriteria(new Criteria("account").regex(".*?" + ObjectUtils.toString(args[0]) + ".*"));
}
if(args[1]!=null&&!"".equals(ObjectUtils.toString(args[1]))){
query.addCriteria(new Criteria("userName").regex(".*?" + ObjectUtils.toString(args[1]) + ".*"));
}
if(args[2]!=null&&!"".equals(ObjectUtils.toString(args[2]))){
query.addCriteria(new Criteria("examName").regex(".*?" + ObjectUtils.toString(args[2]) + ".*"));
}
}
query.sort().on("enterTime", Order.DESCENDING);//按进入时间倒序排序
returnValue = mongoTemplate.find(query, Log_Exam_Base.class, "ExamLog");
} catch (Exception e) {
e.printStackTrace();
}
return returnValue;
}
/**
* 获取内嵌子文档列表数据
*/
@Override
public PageObject getExamOperation(Object[] args, Map req) {
int totalCount = 1;
int start = NumberUtils.toInt(ObjectUtils.toString(req.get("start"),"0"));
int limit = NumberUtils.toInt(ObjectUtils.toString(req.get("limit"),"25"));
List returnValue = null;
try {
Query query = new Query().limit(limit);
query.addCriteria(Criteria.where("logUuid").is(ObjectUtils.toString(args[0], "")));
query.skip(start);
query.sort().on("operationTime", Order.DESCENDING);//按操作时间倒序排序
List exmL = mongoTemplate.find(query, Log_Exam_Base.class, "ExamLog");
if(exmL.size()>0){
Log_Exam_Base em=(Log_Exam_Base) exmL.get(0);
returnValue=em.getOperation();
}
if(returnValue!=null){
totalCount = returnValue.size();
}
} catch (Exception e) {
e.printStackTrace();
}
PageObject page = new PageObject();
page.setDatasource(returnValue);
page.setTotalCount(totalCount);
int _absolutePage = (int)Math.ceil(totalCount * 1.0/limit);
page.setAbsolutePage(_absolutePage);
int _currentPage = start/limit + 1;
page.setCurrentPage(_currentPage);
return page;
}
}用到的实体类
public class Log_Exam_Base extends BaseLog{ private String examId;//考试id private String examName;//考试名称 private String enterTime;//进入时间 private String exitTime;//退出时间 private String egid;//成绩id private List<Log_Exam_Operation> operation;//答题操作集合 public String getExamId() { return examId; } public void setExamId(String examId) { this.examId = examId; } public String getEnterTime() { return enterTime; } public void setEnterTime(String enterTime) { this.enterTime = enterTime; } public String getExitTime() { return exitTime; } public void setExitTime(String exitTime) { this.exitTime = exitTime; } public List<Log_Exam_Operation> getOperation() { return operation; } public void setOperation(List<Log_Exam_Operation> operation) { this.operation = operation; } public String getEgid() { return egid; } public void setEgid(String egid) { this.egid = egid; } public String getExamName() { return examName; } public void setExamName(String examName) { this.examName = examName; } }
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- 如何在 Ubuntu 上安装 MongoDB
- perl操作MongoDB报错undefined symbol: HeUTF8解决方法
- C#中使用1.7版本驱动操作MongoDB简单例子
- MongoDB系列教程(四):设置用户访问权限
- php实现的mongodb操作类实例
- 解决mongodb在ubuntu下启动失败,提示couldn‘t remove fs lock errno:9 Bad file descriptor的错误
- 在PostgreSQL的基础上创建一个MongoDB的副本的教程
- java操作mongodb示例分享
- php对mongodb的扩展(初出茅庐)
- 作为PHP程序员应该了解MongoDB的五件事
- 基于MySQL到MongoDB简易对照表的详解
- MongoDB入门教程之C#驱动操作实例
- MongoDB为用户设置访问权限
- MongoDB db.serverStatus()输出内容中文注释
- MongoDB的一些常用查询方法
- mongodb与mysql命令详细对比
- Ubuntu中安装MongoDB及执行一些简单操作笔记