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);}
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
- SSM框架下实现MyBatis连接查询,一对多和多对一
- 22、SSM框架-Mybatis关联查询一对一和一对多的实现(4)
- 【SSM-MyBatis框架】关联查询--一对多查询
- Mybatis多对多转化为一对多查询,简单易学(SSM框架)
- mybatis 一对多和多对一关联查询
- mybatis 一对多和多对一关联查询
- ssm框架学习---mybatis中一对多关系的查询
- MyBatis实现一对多和多对一的关联关系的查询
- SSM搭建-Mybatis关联查询一对一和一对多的实现(19)
- MyBatis一对多和多对一
- MyBatis一对多和多对一
- MyBatis一对多和多对一
- MyBatis一对多和多对一
- MyBatis一对多和多对一
- MyBatis一对多和多对一
- MyBatis一对多和多对一
- MyBatis一对多和多对一
- MyBatis一对多和多对一
- 二代旅游网站CMS常用全局公共函数列表
- qt 状态机弹跳效果
- java与C#的比较
- 【Java】获取指定HTML 文档指定的body、页中超链接的标题和链接、指定博客文章的内容
- [项目]简易安全卫士的实现
- SSM框架下实现MyBatis连接查询,一对多和多对一
- 每天一点库函数-numpy
- 破解DLL的一点心得体会
- 关于csv格式文件的导入、导出时的身份证号处理
- ISUZU ELF
- 腾讯发布80页重磅报告:哪些行业将被颠覆
- Hibernate学习笔记(一)
- Linux 系统应用编程——网络编程(TCP/IP 数据包格式解析)
- I/O多路复用