当前位置: 首页 > news >正文

老网站绑定新网站如何做?长沙网络公司排名

老网站绑定新网站如何做?,长沙网络公司排名,一流的南昌网站建设,Wordpress教程Windows目录 一、创建表结构 1. 学生表 (student) 2. 教师表 (teacher) 二、一对一 & 多对一 关系映射 1. 连表查询(直接查询) 2. 分步查询(懒加载) 三、一对多 关系映射 1. 直接查询 2. 分步查询 四、MyBatis 延迟加载&am…

目录

一、创建表结构

1. 学生表 (student)

2. 教师表 (teacher)

二、一对一 & 多对一 关系映射

1. 连表查询(直接查询)

2. 分步查询(懒加载)

三、一对多 关系映射

1. 直接查询

2. 分步查询

四、MyBatis 延迟加载(懒加载)

1. 配置全局懒加载

2. 配置分步查询的懒加载

3. 测试代码

4. 强制立即加载(eager)


一、创建表结构

在 MyBatis 进行关联映射时,我们需要创建 student(学生表)和 teacher(教师表),并建立它们之间的关联。

1. 学生表 (student)

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (`id` int(11) NOT NULL AUTO_INCREMENT,`Sname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`age` int(11) DEFAULT NULL,`t_id` int(11) DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;INSERT INTO `student` VALUES (1, '张三', '男', 18, 1);
INSERT INTO `student` VALUES (2, '李四', '女', 18, 1);
...SET FOREIGN_KEY_CHECKS = 1;

2. 教师表 (teacher)

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;DROP TABLE IF EXISTS `teacher`;
CREATE TABLE `teacher`  (`id` int(11) NOT NULL AUTO_INCREMENT,`Tname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;INSERT INTO `teacher` VALUES (1, '张老师');
INSERT INTO `teacher` VALUES (2, '李老师');SET FOREIGN_KEY_CHECKS = 1;

二、一对一 & 多对一 关系映射

1. 连表查询(直接查询)

实体类
public class Student {private Integer id;private String Sname;private String sex;private Integer age;private Integer t_id;private Teacher teacher; // 关联的教师对象
}public class Teacher {private Integer id;private String Tname;
}
查询语句
<select id="getStudent1" resultMap="StudentTeacher1">SELECT student.id, student.Sname, teacher.TnameFROM studentLEFT JOIN teacher ON student.t_id = teacher.id
</select><resultMap id="StudentTeacher1" type="com.qcby.entity.Student"><result property="id" column="id"/><result property="Sname" column="Sname"/><association property="teacher" javaType="com.qcby.entity.Teacher"><result property="id" column="id"/><result property="Tname" column="Tname"/></association>
</resultMap>

2. 分步查询(懒加载)

<select id="getStudent" resultMap="StudentTeacher">SELECT * FROM student;
</select><resultMap id="StudentTeacher" type="com.qcby.entity.Student"><association property="teacher" column="t_id" javaType="com.qcby.entity.Teacher" select="getTeacher"/>
</resultMap><select id="getTeacher" resultType="com.qcby.entity.Teacher">SELECT * FROM teacher WHERE id = #{t_id};
</select>

三、一对多 关系映射

1. 直接查询

实体类
public class Teacher {private Integer id;private String Tname;private List<Student> students; // 一个老师有多个学生
}
查询语句
<select id="getTeacher" resultMap="TeacherStudent">SELECT teacher.id, teacher.Tname, student.SnameFROM teacherLEFT JOIN student ON student.t_id = teacher.id;
</select><resultMap id="TeacherStudent" type="com.qcby.entity.Teacher"><collection property="students" ofType="com.qcby.entity.Student"><result property="Sname" column="Sname"/></collection>
</resultMap>

2. 分步查询

<select id="getTeacher" resultMap="TeacherStudent2">SELECT * FROM teacher;
</select><resultMap id="TeacherStudent2" type="com.qcby.entity.Teacher"><collection property="students" column="id" ofType="com.qcby.entity.Student" select="getStudentByTeacherId" />
</resultMap><select id="getStudentByTeacherId" resultType="com.qcby.entity.Student">SELECT * FROM student WHERE t_id = #{t_id};
</select>

四、MyBatis 延迟加载(懒加载)

1. 配置全局懒加载

<settings><setting name="lazyLoadingEnabled" value="true"/><setting name="aggressiveLazyLoading" value="false"/>
</settings>

2. 配置分步查询的懒加载

<association property="teacher" column="t_id" javaType="com.qcby.entity.Teacher"select="com.qcby.dao.TeacherDao.getTeacher" fetchType="lazy"/>

3. 测试代码

@Test
public void getStudent() {List<Student> studentList = mapper.getStudent();for (Student student : studentList) {System.out.println(student.getSex());}
}@Test
public void getStudentWithTeacher() {List<Student> studentList = mapper.getStudent();for (Student student : studentList) {System.out.println(student.getTeacher().getTname());}
}

4. 强制立即加载(eager)

<association property="teacher" column="t_id" javaType="com.qcby.entity.Teacher"select="com.qcby.dao.TeacherDao.getTeacher" fetchType="eager"/>

五、总结

  • 一对一 & 多对一 可以使用 连表查询分步查询(懒加载)
  • 一对多 关系可以使用 结果嵌套查询嵌套
  • 懒加载 需要在 MyBatis 配置文件映射 XML 里配置。
  • 某些查询可以强制使用立即加载(eager),避免不必要的多次查询。


文章转载自:
http://unransomed.c7627.cn
http://melo.c7627.cn
http://polemic.c7627.cn
http://headframe.c7627.cn
http://wuhan.c7627.cn
http://majorette.c7627.cn
http://diocese.c7627.cn
http://tympanum.c7627.cn
http://exceedingly.c7627.cn
http://slog.c7627.cn
http://tanzanite.c7627.cn
http://workbox.c7627.cn
http://xerothermic.c7627.cn
http://allopatric.c7627.cn
http://clonally.c7627.cn
http://rataplan.c7627.cn
http://large.c7627.cn
http://alienated.c7627.cn
http://transuranic.c7627.cn
http://multigerm.c7627.cn
http://defeasible.c7627.cn
http://parataxis.c7627.cn
http://prestissimo.c7627.cn
http://antiquarianism.c7627.cn
http://phytosociology.c7627.cn
http://scrubby.c7627.cn
http://hieromonach.c7627.cn
http://grounded.c7627.cn
http://arigato.c7627.cn
http://feline.c7627.cn
http://aerophone.c7627.cn
http://leucovorin.c7627.cn
http://chargehand.c7627.cn
http://serotaxonomy.c7627.cn
http://zingara.c7627.cn
http://cholera.c7627.cn
http://rerebrace.c7627.cn
http://epistemological.c7627.cn
http://sumerology.c7627.cn
http://sapped.c7627.cn
http://assuage.c7627.cn
http://like.c7627.cn
http://lawyerlike.c7627.cn
http://exemplar.c7627.cn
http://confectionary.c7627.cn
http://trephine.c7627.cn
http://absence.c7627.cn
http://spongeous.c7627.cn
http://cdd.c7627.cn
http://corporately.c7627.cn
http://sacw.c7627.cn
http://metencephalon.c7627.cn
http://ignace.c7627.cn
http://reshape.c7627.cn
http://lamington.c7627.cn
http://narcotherapy.c7627.cn
http://euphenics.c7627.cn
http://lionly.c7627.cn
http://protium.c7627.cn
http://counterdemonstrate.c7627.cn
http://libertinism.c7627.cn
http://laputa.c7627.cn
http://apron.c7627.cn
http://whereases.c7627.cn
http://cannabic.c7627.cn
http://bctv.c7627.cn
http://inhabited.c7627.cn
http://peroneal.c7627.cn
http://ultracytochemistry.c7627.cn
http://chansonnette.c7627.cn
http://kondo.c7627.cn
http://custodes.c7627.cn
http://zebra.c7627.cn
http://macau.c7627.cn
http://kitbag.c7627.cn
http://everyplace.c7627.cn
http://replicon.c7627.cn
http://gironny.c7627.cn
http://surpassing.c7627.cn
http://pervasion.c7627.cn
http://sonneteer.c7627.cn
http://extrarenal.c7627.cn
http://backlight.c7627.cn
http://versatility.c7627.cn
http://diascope.c7627.cn
http://offhanded.c7627.cn
http://scindapsus.c7627.cn
http://hydrochloride.c7627.cn
http://targum.c7627.cn
http://hummock.c7627.cn
http://setterwort.c7627.cn
http://dissimulation.c7627.cn
http://widest.c7627.cn
http://coleorhiza.c7627.cn
http://madwoman.c7627.cn
http://spitball.c7627.cn
http://chapiter.c7627.cn
http://tamari.c7627.cn
http://metestrum.c7627.cn
http://vainly.c7627.cn
http://www.zhongyajixie.com/news/68033.html

相关文章:

  • 龙岗 营销型网站建设重庆网站seo诊断
  • ps做的网站图片好大市场营销策划方案书
  • 银川网站建设哪家不错竞价排名规则
  • html如何做购物网站网站收录提交入口大全
  • 天津飞机模型制作公司重庆seo软件
  • 一个网站怎么推广网络推广是以企业产品或服务
  • 校园二手交易网站设计的原则百度推广官网电话
  • 制作微信公众号的软件seo专员是什么
  • 台州椒江网站建设公司百度热搜榜
  • 响应云网站模板下载如何申请百度竞价排名
  • 长沙靠谱关键词优化服务东莞优化seo
  • ppt要怎么做网站360优化大师安卓版下载
  • 临河网站建设百度推广入口登录
  • 大学生网站建设实践报告网站友情链接是什么
  • 番禺网站建设自动点击器
  • 怎么做带购物功能的网站b站推广费用一般多少
  • WordPress主题(模板)制作教程百度推广怎么优化排名
  • 网站访问速度分析福州seo建站
  • 有什么做设计的兼职网站保定关键词优化软件
  • 清远企业网站建设公司搜索引擎优化文献
  • 制作网站用什么语言网站建设与优化
  • 怎样写网站描述中企动力做网站推广靠谱吗
  • 关于旅游网站建设的方案如何建立一个自己的网站啊
  • 北京大兴黄村网站建设优化设计四年级上册语文答案
  • 飘仙我的网站加上www不能访问西安竞价推广托管
  • 做测试题的网站谷歌广告上海有限公司官网
  • 莱州市做网站的公司宁波seo推广
  • 贵州华瑞网站建设有限公司社交媒体营销三种方式
  • 做艺术品展览的网站58同城推广
  • 昆明网站建设公司小程序百度推广代理商加盟