Mybatis框架-22:多表操作之多对多——添加操作
2019-06-09 11:55
357 查看
第一步:mapper接口
教师的mapper接口,这里有两个接口,一个是用于插入教师,一个是用于更新关系维护外键
[code]/** * 添加教师 * @param teacher */ void insertTeacher(Teacher teacher); /** * 添加老师的学生时候维护外键的关系 * @param studentId * @param teacherId */ void insertRelationWithStudent(@Param("studentId") Integer studentId, @Param("teacherId") Integer teacherId);
学生的mapper接口
[code]/** * 添加学生 * @param student */ void insertStudent(Student student);
第二步:mapper.xml的SQL语句
注意:这里插入之后都需要获取主键
教师的sql:这里有两个sql,一个插入教师,一个更新关系
[code]<insert id="insertTeacher" parameterType="Teacher" useGeneratedKeys="true" keyProperty="teacherId" keyColumn="teacherId"> insert into `teacher` (teacherName) values (#{teacherName}); </insert> <insert id="insertRelationWithStudent"> insert into `teacher_student` (studentId,teacherId) values (#{studentId},#{teacherId}); </insert>
学生的sql
[code]<insert id="insertStudent" parameterType="Student" useGeneratedKeys="true" keyProperty="studentId" keyColumn="studentId"> insert into `student` (studentName) values (#{studentName}); </insert>
第三步:测试类
[code]@Test public void test3(){ SqlSession session = MyUtils.openSession(); TeacherMapper teacherMapper = session.getMapper(TeacherMapper.class); StudentMapper studentMapper = session.getMapper(StudentMapper.class); //创建老师 Teacher teacher = new Teacher(); teacher.setTeacherName("新老师1"); //创建学生 Student student1 = new Student(); student1.setStudentName("新学生1"); Student student2 = new Student(); student2.setStudentName("新学生2"); //老师添加学生 teacher.getStudents().add(student1); teacher.getStudents().add(student2); //插入老师和学生 teacherMapper.insertTeacher(teacher); studentMapper.insertStudent(student1); studentMapper.insertStudent(student2); //维护关系 for (Student student : teacher.getStudents()) { teacherMapper.insertRelationWithStudent(student.getStudentId(),teacher.getTeacherId()); } session.commit(); session.close(); }
相关文章推荐
- Python Django框架实现应用添加logging日志操作示例
- mybatis框架入门的简单的CURD操作
- Mybatis-批量操作(更新,添加,删除)
- MyBatis框架@纯注解方式对数据库的操作
- mybatis 框架 的应用之二(批量添加、实现分页查询)
- mybatis 框架 的应用之三(操作两张没有关联的表,存在主键和外键关系)
- 框架添加mybatis
- MyBatis框架基本操作及进阶部分
- mybatis实战之路,疯狂的数据库操作框架、动态sql的mybats之快速搭建基本环境
- springmvc+mybatis框架下,写通用的操作,删除等的操作
- MyBatis框架基于Annotation注解的数据库增删改查操作
- 【MyBatis】(一)MyBatis基础知识点(概念,Mybatis框架的优缺点,简单的Mybatis框架使用Demo,基本的增删改查操作案例)
- mybatis-id使用自增长的添加操作
- SSM框架day02-MyBatis——021对单表的CURD操作-环境搭建
- 使用mybatis框架执行Oracle数据库日期类型操作的时Date类型精确不到时分秒的问题
- SSM框架day02-MyBatis——027——对单表的CURD操作-根据id查询
- mybatis 用户添加,删除,更改 操作
- mybatis-generator 添加分页操作
- 22、SSM框架-Mybatis关联查询一对一和一对多的实现(4)
- SSM框架day02-MyBatis——022对单表的CURD操作-获取新插入数据的id