日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybitis第三讲:关联查询

發布時間:2025/4/5 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybitis第三讲:关联查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

創建三個表

CREATE TABLE `t_teacher` (
`t_id` int(11) NOT NULL AUTO_INCREMENT,
`t_name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`t_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;


INSERT INTO `t_teacher` VALUES ('1', '劉曉云');
INSERT INTO `t_teacher` VALUES ('2', '鄭同華');
INSERT INTO `t_teacher` VALUES ('3', '李明軍');


CREATE TABLE `t_class` (
? `c_id` int(11) NOT NULL AUTO_INCREMENT,
? `c_name` varchar(20) DEFAULT NULL,
? `teacher_id` int(11) DEFAULT NULL,
PRIMARY KEY (`c_id`),
KEY `fk_teacher_id` (`teacher_id`),
CONSTRAINT `fk_teacher_id` FOREIGN KEY (`teacher_id`) REFERENCES `t_teacher` (`t_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;


INSERT INTO `t_class` VALUES ('1', '2020軟件1班', '3');
INSERT INTO `t_class` VALUES ('2', '2020軟件2班', '2');
INSERT INTO `t_class` VALUES ('3', '2020軟件3班', '1');


CREATE TABLE `t_student` (
? `s_id` int(11) NOT NULL AUTO_INCREMENT,
? `s_name` varchar(30) DEFAULT NULL,
? `s_gender` varchar(10) DEFAULT NULL,
? `s_age` int(11) DEFAULT NULL,
? `class_id` int(11) DEFAULT NULL,
? PRIMARY KEY (`s_id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;


insert into `t_student` VALUES ('1','童大為','男','20','1');
insert into `t_student` VALUES ('2','童為','男','22','1');
insert into `t_student` VALUES ('3','童小為為','男','20','1');
insert into `t_student` VALUES ('4','李總','男','28','1');
insert into `t_student` VALUES ('5','李四','男','24','1');
insert into `t_student` VALUES ('6','張三','男','20','1');
insert into `t_student` VALUES ('7','王五','男','21','1');
insert into `t_student` VALUES ('8','張起靈','男','20','1');
insert into `t_student` VALUES ('9','張日山','男','200','1');

創建更剛才創建好的表相對應的實體類文件,在里面創建get\set\tostring,方法

附上代碼:

package net.lbd.mybatis.bean;public class Teacher {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Teacher{" +"id=" + id +", name='" + name + '\'' +'}';} }

?

package net.lbd.mybatis.bean;public class Student {private int id;private String name;private String gender;private int age;private int clazz;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getClazz() {return clazz;}public void setClazz(int clazz) {this.clazz = clazz;}@Overridepublic String toString() {return "Student{" +"id=" + id +", name='" + name + '\'' +", gender='" + gender + '\'' +", age=" + age +", clazz=" + clazz +'}';} }

?

package net.lbd.mybatis.bean;import java.util.List;public class Clazz {private int id;private String name;private Teacher teacher;private List<Student>students;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Teacher getTeacher() {return teacher;}public void setTeacher(Teacher teacher) {this.teacher = teacher;}public List<Student> getStudents() {return students;}public void setStudents(List<Student> students) {this.students = students;}@Overridepublic String toString() {return "Clazz{" +"id=" + id +", name='" + name + '\'' +", teacher=" + teacher.getName() +", students=" + students +'}';} }

?

班級映射器配置文件

附上代碼:

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="net.lbd.mybatis.mapper.ClazzMapper"><!--三表關聯查詢--><select id="findById" parameterType="int" resultMap="ClazzResultMap">select * from t_teacherinner join t_class on t_class.teacher_id = t_teacher.t_idinner join t_student on t_class.c_id = t_student.class_idwhere c_id =#[id];</select><!--定義班級的結果映射--><resultMap id="clazzResultMap" type="Clazz"><result column="c_id" property="id"/><result column="c_name" property="name"/><!--建立一對一的關聯--><association property="teacher" column="teacher_id" javaType="Teacher"><result property="id" column="t_id"/><result property="name" column="t_name"/></association><!--建立一對多的關聯--><collection property="students" ofType="Student"><result property="id" column="s_id"/><result property="name" column="s_name"/><result property="gender" column="s_gender"/><result property="age" column="s_age"/><association property="clazz" column="class_id" javaType="Clazz"><result property="name" column="c_name"/></association></collection></resultMap><select id="findAll" resultMap="clazzResultMap2">select * from t_class;</select><!--定義班級的結果映射--><resultMap id="clazzResultMap2" type="Clazz"><result column="c_id" property="id"/><result column="c_name" property="name"/><association property="teacher" column="teacher_id" javaType="Teacher" select="getTeacher"/></resultMap><select id="getTeacher" resultType="Teacher">select t_id id,t_name name from t_teacher where t_id=#{id};</select></mapper>

關系圖,這個圖可以幫助理解映射文件

在mybatis-config.xml配置文件中,添加圖中圈出的代碼

?

?

?

?

?

?

?

?

遇到的問題

?

總結

以上是生活随笔為你收集整理的mybitis第三讲:关联查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。