第七节 关联映射之多对多
本次用 MyBatis 实现多对多关联映射:一个学生可以选多门课,一个课也可以由多个学生选。
一、 数据库准备
为了测试方便,我们在这里新建一个数据库并取名mybatis用作测试。
创建学生表 tb_student 并插入两条数据:
创建课程表 tb_course 并插入两条数据:
由于学生和课程是多对多的关联关系,因此创建中间表:选课表 tb_select_course 并插入数据
二、新建项目
2.1 导入所需 jar 包
所需 jar 包:
MyBatis jar 包: mybatis-3.3.0.jar
MySQL 驱动 jar 包: mysql-connector-java-5.1.35.jar
日志记录 jar 包: log4j-1.2.17.jar
2.2 实体类
Student.java 的代码如下:
Course.java 的代码如下:
StudentCourseLink.java代码如下:
2.3 创建方法接口和定义映射文件
StudentMapper 接口的代码如下:
StudentMapper.xml 的配置如下:
在这里,采用的是集合的嵌套结果映射的方式,使用了 元素映射多对多的关联关系。
2.5 日志记录 log4j.properties
使用日志文件是为了查看控制台输出的 SQL 语句。
log4j.properties ,在里面添加如下内容:
2.6 测试类 Test
2.7 运行测试
运行测试类 Test.java,分别调用 Test 类中的两个方法。
结果如下:
2.7.1 selectStudentCourse()
查询所有学生及他们的选择课程的信息
2.7.2 deleteStudentCourseById()
删除 id 为1的学生选择id为2的课程选课情况
再次调用 selectStudentCourse() 方法,发现 id 为1的学生已经将 id 为2的课程退选。
javawl
java学习之路
- python接口自动化8-参数化
- HDU 2037 今年暑假不AC(贪心,区间更新,板子题)
- “玲珑杯”ACM比赛 Round #13 题解&源码
- 回溯算法入门及经典案例剖析(初学者必备宝典)
- Selenium2+python自动化66-装饰器之运行失败截图
- 51Nod 1091 线段的重叠(贪心+区间相关,板子题)
- 51Nod 1016 水仙花数 V2(组合数学,枚举打表法)
- Selenium2+python自动化67-用例失败自动截图
- Codeforces Round #404 (Div. 2)(A.水,暴力,B,排序,贪心)
- hihoCoder #1053 : 居民迁移(贪心,二分搜索,google在线技术笔试模拟)
- php开发文章发布示例(正则表达式实例开发)
- Codeforces Round #408 (Div. 2)(A.水,B,模拟)
- php实现文件上传
- Selenium2+python自动化69-PhantomJS使用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法