查询一学生的书籍信息,并包含学生的详细信息,通常会将学生信息和书籍信息关联放在学生表上,因为学生通常会有多个书籍,而一本书只属于一个学生。mybatis中查询学生信息和学生借书信息 ,查询语句怎么写
时间: 2024-09-25 12:06:54 浏览: 14
在MyBatis中,如果你有一个包含学生信息和他们借阅书籍信息的学生表,可以使用 resultMap 和 join 策略来获取所需的联合数据。假设你的表名为 `student` 和 `borrow_records`,并且它们有如下的关系:
- `student` 表包含:`id`, `name`, `other_student_info`
- `borrow_records` 表包含:`student_id`, `book_id`, `borrow_date`
你可以编写这样的 SQL 映射文件(XML 或 XML 风格的 MyBatis XML 配置):
```xml
<select id="selectStudentAndBooks" parameterType="int" resultType="com.example.StudentWithBook">
SELECT s.id, s.name, s.other_student_info,
br.book_id, br.borrow_date
FROM student s
LEFT JOIN borrow_records br ON s.id = br.student_id
WHERE s.id = #{id}
</select>
<resultMap id="StudentWithBook" type="com.example.Student">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="otherStudentInfo" column="other_student_info"/>
<association property="books" javaType="List<Book>" column="book_id">
<result property="bookId" column="book_id"/>
<result property="borrowDate" column="borrow_date"/>
</association>
</resultMap>
```
在这个例子中,`StudentWithBook` 结果映射定义了一个包含 `Student` 对象,其中还包括一个嵌套的结果集 `books`,表示学生的所有书籍及其借阅日期。