时间:2021-07-01 10:21:17 帮助过:14人阅读
package com.java.web; import org.mongodb.framework.dao.GeneralDao; public interface ClazzesDao extends GeneralDao<Clazzes>{ }
package com.java.web; import org.mongodb.framework.dao.GeneralDaoImpl; import org.springframework.stereotype.Repository; @Repository public class ClazzesDaoImpl extends GeneralDaoImpl<Clazzes> implements ClazzesDao{ @Override protected Class<Clazzes> getEntityClass() { // TODO Auto-generated method stub return Clazzes.class; } }
package com.java.web; import org.mongodb.framework.service.GeneralServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import com.java.manage.pojo.User; @Service public class ClazzesService extends GeneralServiceImpl<Clazzes> { @Autowired private ClazzesDao clazzDao; /** * 根据用户id查询用户 * * @param id * @return * @throws Exception */ public Clazzes findClazzById(String id) throws Exception { Query query = new Query(); query.addCriteria(Criteria.where("_id").is(id)); // User user= this.userDao.findOneById(id); Clazzes clazz = this.clazzDao.findOneByQuery(query); if (clazz != null) return clazz; else return null; } }
package com.java.web; import org.mongodb.framework.pojo.GeneralBean; import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.Document; @Document public class Student extends GeneralBean { /** * */ private static final long serialVersionUID = 5697238875408915428L; /** * */ private String name; private int age; private String enterYear; @DBRef private Clazzes clazzes; public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; } public String getEnterYear() { return this.enterYear; } public void setEnterYear(String enterYear) { this.enterYear = enterYear; } public Clazzes getClazzes() { return this.clazzes; } public void setClazzes(Clazzes clazzes) { this.clazzes = clazzes; } }
package com.java.web; import org.mongodb.framework.dao.GeneralDao; public interface StudentDao extends GeneralDao<Student>{ }
package com.java.web; import org.mongodb.framework.dao.GeneralDaoImpl; import org.springframework.stereotype.Repository; @Repository public class StudentDaoImpl extends GeneralDaoImpl<Student> implements StudentDao{ @Override protected Class<Student> getEntityClass() { // TODO Auto-generated method stub return Student.class; } }
package com.java.web; import org.mongodb.framework.dao.GeneralDaoImpl; import org.springframework.stereotype.Repository; @Repository public class StudentDaoImpl extends GeneralDaoImpl<Student> implements StudentDao{ @Override protected Class<Student> getEntityClass() { // TODO Auto-generated method stub return Student.class; } }
上面贴的都是基本的代码,下面进行junit测试
package org.java.test; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.transaction.annotation.Transactional; import com.java.web.Clazzes; import com.java.web.ClazzesService; import com.java.web.Student; import com.java.web.StudentDao; import com.java.web.StudentService; public class TestInertStudentClass { ApplicationContext ac=null; @Before public void befort(){ ac=new ClassPathXmlApplicationContext(new String[]{"application-config.xml","dispatcher-servlet.xml","dispatcher-shiro.xml"}); } /** * 添加学生并且绑定班级 * @throws Exception */ @Test public void InsertStudent() throws Exception { StudentDao studentdao=(StudentDao) ac.getBean("studentDaoImpl"); List<Student> studentList = new ArrayList<Student>(); ClazzesService clazzService = (ClazzesService)ac.getBean("clazzesService"); Clazzes clazz =clazzService.findClazzById("59658fd4d724ccce5ee5cc5b"); if(clazz!=null){ for(int i=0;i<10;i++){ Student student = new Student(); student.setAge(11); student.setClazzes(clazz); student.setEnterYear("2015"); student.setName("学生"+i); studentdao.insert(student); studentList.add(student); } clazz.setStudent(studentList); clazzService.save(clazz); } } /** * 初始化一个班级 * @throws Exception */ @Test public void InsertClazz() throws Exception{ ClazzesService clazzService = (ClazzesService)ac.getBean("clazzesService"); Clazzes c = new Clazzes(); c.setClassRoom("2014年1班"); c.setClassTeacher("Mrs zhang"); c.setStudent(new ArrayList()); clazzService.insert(c); } /** * 通过联合查询获取班级下的所有学生信息 * @throws Exception */ @Test public void getAllClazz() throws Exception{ ClazzesService clazzService = (ClazzesService)ac.getBean("clazzesService"); Clazzes c = clazzService.findClazzById("59658fd4d724ccce5ee5cc5b"); for(Student s :c.getStudent()){ System.out.println("联合查询学生姓名:"+s.getName()); } } /* * 通过学生的id获取学生的班级 */ @Test public void findAllStudent() throws Exception{ StudentService s = (StudentService)ac.getBean("studentService"); Student ss = s.findUserById("59658831d724a1cb751c3ef8"); //通过联合查询获取班级信息 System.out.println(ss.getClazzes().getClassRoom()); } /** * 删除学生的时候执行联合删除班级中的学生 * @throws Exception */ @Test public void deleteStudent() throws Exception{ StudentService s = (StudentService)ac.getBean("studentService"); ClazzesService clazzService = (ClazzesService)ac.getBean("clazzesService"); Student ss = s.findUserById("596591e1d7241f4590bddef5"); List<Student> list= ss.getClazzes().getStudent(); List<Student> listnew = new ArrayList<Student>(); for(Student stu:list){ if(!stu.getId().equals("596591e1d7241f4590bddef5")){ listnew.add(stu); } } Clazzes c = ss.getClazzes(); c.setStudent(listnew); clazzService.save(c); s.remove(ss); } }
Mongodb联合查询
标签:姓名 where 添加 删除 actor tor dispatch repos sse