SSM框架下实现MyBatis连接查询,一对多和多对一

来源:互联网 发布:淘宝网时尚女鞋 编辑:程序博客网 时间:2024/05/29 17:52

一、表




二、实体类



1、一个结果类(连接查询)


package com.cn.cust.entities;//连接查询测试public class StudentAndClassesName {private String sName;private String cName;public String getsName() {return sName;}public void setsName(String sName) {this.sName = sName;}public String getcName() {return cName;}public void setcName(String cName) {this.cName = cName;}@Overridepublic String toString() {return "StudentAndClassesName [sName=" + sName + ", cName=" + cName + "]";}}




2、Classes

package com.cn.cust.entities;import java.util.List;public class Classes {private int id;private String name;private List<Student> studentList;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Classes [id=" + id + ", name=" + name + "]";}public List<Student> getStudentList() {return studentList;}public void setStudentList(List<Student> studentList) {this.studentList = studentList;}}

3.Student

package com.cn.cust.entities;public class Student {private int id;private String name;private Classes classes;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + "]";}public Classes getClasses() {return classes;}public void setClasses(Classes classes) {this.classes = classes;}}

三、持久层

1.comboDao
package com.cn.cust.dao;import java.util.List;import com.cn.cust.entities.StudentAndClassesName;// 连接查询测试public interface comboDao {public List<StudentAndClassesName> findStudentAndClassesName();}

2.ClassesDao

package com.cn.cust.dao;import com.cn.cust.entities.Classes;public interface ClassesDao {public Classes getStudentsOfClass(int id);}


3.StudentDao

package com.cn.cust.dao;import com.cn.cust.entities.Student;public interface StudentDao {public StudentgetClassOfStudent(int id);}

四、服务层

1、服务层接口
package com.cn.cust.service;import java.util.List;import com.cn.cust.entities.StudentAndClassesName;public interface IStudentAndClassesService {// 1、连接查询public List<StudentAndClassesName> getStudentClasses();// 2、一对多查询public void selectClassesFetchStudent();// 3、多对一查询public void selectStudentFetchClasses();}

2、服务层实现
package com.cn.cust.serviceImpl;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Service;import com.cn.cust.dao.ClassesDao;import com.cn.cust.dao.StudentDao;import com.cn.cust.dao.comboDao;import com.cn.cust.entities.Classes;import com.cn.cust.entities.Student;import com.cn.cust.entities.StudentAndClassesName;import com.cn.cust.service.IStudentAndClassesService;@Service("studentAndClassesService")public class StudentAndClassesServiceImpl implements IStudentAndClassesService {@Resourceprivate comboDao my_combaDao;@Resourceprivate ClassesDao classesDao;@Resourceprivate StudentDao studentDao;// 1、连接查询@Overridepublic List<StudentAndClassesName> getStudentClasses() {return this.my_combaDao.findStudentAndClassesName();}// 2、一对多查询@Overridepublic void selectClassesFetchStudent() {Classes classes = this.classesDao.getStudentsOfClass(11);System.out.println(classes);System.out.println(classes.getStudentList().size());for(Student students : classes.getStudentList()) {System.out.println(students);}}// 3、多对一查询@Overridepublic void selectStudentFetchClasses() {Student student = this.studentDao.getClassOfStudent(1);System.out.println(student);System.out.println(student.getClasses());}}

五、测试类

package com.cn.cust.test;import java.util.Iterator;import java.util.List;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.cn.cust.entities.StudentAndClassesName;import com.cn.cust.service.IStudentAndClassesService;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:spring-mybatis.xml")public class TestStudentClasses {@Resourceprivate IStudentAndClassesService studentAndClassesService;// 1、连接查询测试类@Testpublic void testLianJie() {List<StudentAndClassesName> list = studentAndClassesService.getStudentClasses();// 使用迭代器输出list中的内容Iterator<StudentAndClassesName> it = list.iterator();while (it.hasNext()) {System.out.println(it.next());}System.out.println("成功!!");}// 2、一对多查询@Testpublic void testOneToMore() {studentAndClassesService.selectClassesFetchStudent();}// 3、多对一查询@Testpublic void testMoreToOne() {studentAndClassesService.selectStudentFetchClasses();}}

六、测试结果

1、连接查询

2、一对多,查询class(一)级联查询学生student(多)


3、多对一,查询student(多)级联查询class(一)



七、源码和数据库文件下载地址

http://download.csdn.net/detail/xiaoxiaoxiaohaozi/9406470









0 1
原创粉丝点击