mybatis學習 - 多表查詢的實現
多表查詢的實現
一、新增資料表
新增資料表的sql文:
-- 建立course
create table course(
id int(20) auto_increment primary key,
courseName varchar(60),
detail varchar(1024)
);
-- 建立student
create table student(
id int(20) auto_increment primary key,
stuName varchar(60),
gender tinyint(4),
stuCardId int(20),
detail varchar(1024)
);
-- studentCard表
create table studentCard(
id int(20) auto_increment primary key,
stuId int(20),
jiguan varchar(60),
destTime date,
endTime date,
detail varchar(1024),
foreign key(stuId) references student(id)
);
-- 建立courseGrade表
create table courseGrade(
id int(20) auto_increment primary key,
stuId int(20),
courseId int(20),
grade decimal(16,2),
detail varchar(1024),
foreign key(stuId) references student(id),
foreign key(courseId) references course(id)
);
二、新增xml配置檔案
1.course.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xiaopeng.dao.CourseMapper">
<resultMap type="com.xiaopeng.model.Course" id="courseMapper">
<id column="id" property="id"/>
<result column="courseName" property="courseName"/>
<result column="detail" property="detail"/>
</resultMap>
<!-- 通過id查詢課程的資訊 -->
<select id="getCourse" parameterType="int" resultMap="courseMapper">
select * from course where course.id = #{id}
</select>
</mapper>
2.student.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xiaopeng.dao.StudentMapper">
<resultMap type="com.xiaopeng.model.Student" id="studentMap">
<id property="id" column="id"/>
<result property="stuName" column="stuName"/>
<result property="gender" column="gender"/>
<result property="detail" column="detail"/>
<!-- 學生證 -->
<association property="studentCard" column="id"
select="com.xiaopeng.dao.StudentCardMapper.findStuCardByStuId"></association>
<!-- 學生成績(根據學生的編號查詢所有的成績資訊) -->
<collection property="courseGrades" column="id"
select="com.xiaopeng.dao.CourseGradeMapper.selectByStuId">
</collection>
</resultMap>
<select id="getStudent" parameterType="int" resultMap="studentMap">
select * from student where student.id=#{hehe}
</select>
</mapper>
3.studentcard.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xiaopeng.dao.StudentCardMapper">
<resultMap type="com.xiaopeng.model.StudentCard" id="studentCardMap">
<id property="id" column="id"/>
<result property="stuId" column="stuId"/>
<result property="jiguan" column="jiguan"/>
<result property="destTime" column="destTime"/>
<result property="endTime" column="endTime"/>
<result property="detail" column="detail"/>
</resultMap>
<!-- 通過學生的id查詢學生的學生證件 -->
<select id="findStuCardByStuId" parameterType="int" resultMap="studentCardMap">
select studentcard.id,studentcard.stuId,
studentcard.jiguan,studentcard.destTime,
studentcard.endTime,studentcard.detail
from studentcard
where studentcard.stuId=#{amaoagou}
</select>
</mapper>
4、coursegrade.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xiaopeng.dao.CourseGradeMapper">
<resultMap type="com.xiaopeng.model.CourseGrade" id="courseGradeMap">
<id column="id" property="id"/>
<result property="grade" column="grade"/>
<result property="detail" column="detail"/>
<!-- association放在最後 -->
<association property="student" select="com.xiaopeng.dao.StudentMapper.getStudent" column="stuId">
</association>
<association property="course" select="com.xiaopeng.dao.CourseMapper.getCourse" column="courseId">
</association>
</resultMap>
<!-- 根據學生的學號查詢學生的成績 -->
<select id="selectByStuId" parameterType="int" resultMap="courseGradeMap">
select * from coursegrade where coursegrade.stuId = #{stuid}
</select>
</mapper>
相關文章
- mysql多表查詢如何實現MySql
- Mybatis連線池_動態sql語句_多表查詢實現MyBatisSQL
- mybatis多表聯合查詢的寫法MyBatis
- MYSQL學習筆記26: 多表查詢|子查詢MySql筆記
- #MyBatis多表查詢 #多對一、一對多的兩種實現方式 @FDDLCMyBatis
- MyBatis學習筆記(四)使用map實現查詢和插入MyBatis筆記
- MYSQL學習筆記25: 多表查詢(子查詢)[標量子查詢,列子查詢]MySql筆記
- 使用mybatis example 和 java 8的特性來實現多表關聯且帶有查詢條件的查詢MyBatisJava
- Mybatis【15】-- Mybatis一對一多表關聯查詢MyBatis
- 實現 MyBatis 流式查詢的方法MyBatis
- 多表查詢經典練習
- Mybatis學習01:利用mybatis查詢資料庫MyBatis資料庫
- MYSQL學習筆記24: 多表查詢(聯合查詢,Union, Union All)MySql筆記
- 多表查詢
- SQL查詢的:子查詢和多表查詢SQL
- Spring Data JPA 實現多表關聯查詢Spring
- mybatis原始碼學習:基於動態代理實現查詢全過程MyBatis原始碼
- MyBatis從入門到精通(三):MyBatis XML方式的基本用法之多表查詢MyBatisXML
- Mybatis 多表關聯查詢(1) one-to-one關係MyBatis
- 【MySQL】多表查詢MySql
- Django 多表查詢Django
- MySQL 多表查詢MySql
- 04多表查詢
- mysql多表查詢MySql
- Mybatis學習筆記 3:Mybatis 多種條件查詢MyBatis筆記
- MyBatis 多表聯合查詢,欄位重複的解決方法MyBatis
- Day64 Mybatis的多表查詢、ResultMap、註解以及快取MyBatis快取
- 【學習】SQL基礎-006-多表連線查詢SQL
- DataSet多表關聯實現本地資料複雜的查詢
- 實現多表關聯來方便你的SELECT查詢功能
- Spring Boot入門系列(十七)整合Mybatis,建立自定義mapper 實現多表關聯查詢!Spring BootMyBatisAPP
- Oracle-多表查詢Oracle
- ORM多表查詢下ORM
- JPA的多表複雜查詢
- MySQL多表關聯查詢MySql
- MySQL 多表查詢分頁MySql
- JPA多表關聯查詢
- Hibernate hql 多表查詢