Mybatis关联映射(使用xml配置文件方式),有3个表:student、score 要求输入学生姓名,输出学生信息和课程信息以及分数。
时间: 2024-09-30 17:11:06 浏览: 32
Mybatis的关联映射主要是通过XML配置文件来管理数据库表之间的关系,以便在查询时能够一次性加载相关的数据。对于这个场景,假设我们有三个实体类Student、Course 和 Score,它们的关系可以表示为:
- Student 表包含字段如 id (主键) 和 name
- Course 表包含字段如 id (外键引用Student.id), name
- Score 表包含字段如 student_id (引用Student.id), course_id (引用Course.id), score
在Mybatis中,你需要做以下几步配置:
1. **Mapper XML映射文件**:
在`student.xml`或者专门的mapper文件中,创建查询语句,比如获取特定学生及其所有成绩及对应课程信息:
```xml
<select id="getStudentScores" resultType="com.example.StudentScore">
SELECT s.*, c.name as course_name, sc.score
FROM student s
LEFT JOIN score sc ON s.id = sc.student_id
LEFT JOIN course c ON c.id = sc.course_id
WHERE s.name = #{name}
</select>
```
2. **定义结果对象**:
创建一个复合对象`StudentScore`,用于封装查询结果:
```java
public class StudentScore {
private Student student;
private Course course;
private Integer score;
// getters and setters...
}
```
3. **Service和DAO层**:
在Service层中,通过Mapper接口调用上述查询方法并处理返回的结果,传入学生姓名作为参数:
```java
@Autowired
private StudentMapper mapper;
public List<StudentScore> getStudentScores(String name) {
return mapper.getStudentScores(name);
}
```
4. **Controller和视图**:
在控制器接收前端请求后,调用Service层的方法,并将结果展示给用户。
阅读全文