zoukankan      html  css  js  c++  java
  • MyBatis 使用注解方式实现一对多

    //学生po
    public class Student {
         
         //学生id 主键      
         private Long id;
         
         //学生姓名  
         private String name;

       //getter and setter ... }
    //老师po
    public class Teacher {
         
         //老师id 主键      
         private Long id;
         
         //老师姓名  
         private String name;
       //getter and setter ...
    }
    //老师 vo
    public class TeacherVO extends Teacher {
    
        //学生list 因为 教师:学生 = 1 : n
        private List<Student> students;

      // getter and setter ...
    }
    //关系表po
    public
    class Relation { /* 主键 */ private Long id; /* 学生id */ private Long sid; /* 教师id */ private Long tid; // getter and setter ... }

    通过关系表,连接学生表和教师表,根据id获取各自的姓名,基本业务:查询所有老师下的所有学生

    手绘的...凑合看吧 哈哈,因为一个老师下有多个学生,所以在老师的实习类里声明一个学生list属性,就像上述代码一样,建立一个Vo去继承老师的实体类,下面的mapper代码是重点:

    //关系表 Mapper接口
    public
    interface RelationMapper { @Select("select id,name from TEACHER") @Results({@Result(property = "id",column = "id"), @Result(property = "name",column = "name"), @Result(property = "students",javaType = List.class,column ="id", many = @Many(select = "com.example.mapper.RelationMapper.findStudents"))}) List<TeacherVo> findTeacherAndStudents(); @Select("select s.name from RELATION r,STUDENT s where s.id = r.sid and r.tid = #{tid}") List<Student> findStudents(Long tid); }
    @Select("select id,name from TEACHER") 中的id 通过 @Result(property = "students",javaType = List.class,column ="id",传到 many = @Many(select = "com.example.mapper.RelationMapper.findStudents"))})
    在 List<Student> findStudents(Long tid) 中接到传递过来的id 并赋值给sql语句中 #{tid}
    这样就完成了,老师学生通过关系表完成1对多。
    在对应的实现类中,实现findTeacherAndStudents()方法即可,控制层同理~
  • 相关阅读:
    项目经理手记
    自动填写版权信息
    在批处理中实现等待/延迟/暂停
    使用 PowerDesigner 设计数据库
    如何让PowerDesigner支持自动生成含SQL Server 2000的表和列注释的角本
    管理人员的招聘始末谈
    PowerDesign 6简易介绍
    PowerDesigner11.0使用总结
    用表单字段加亮的方式为用户提供友好的界面
    择才有道——企业招聘方式比较
  • 原文地址:https://www.cnblogs.com/MurasakiSeiFu/p/7890599.html
Copyright © 2011-2022 走看看