课堂课题:
什么是实体表,什么是关系表,一对多和多对多应该怎么设计表?
关联任务:
任务五
直播时间:
2018-10-13 15:30:00
课堂内容:
视频链接:
PPT链接:
提交按钮:
小课堂内容格式
标题:
【修真院xx(职业)小课堂】课题名称
开场语:
大家好,我是IT修真院XX分院第X期的学员XX,一枚正直纯洁善良的XX程序员,今天给大家分享一下,修真院官网XX(职业)任务X,深度思考中的知识点——XXX
(1)背景介绍:
背景介绍的时候,尽可能的要宽广,讲清楚来龙去脉,讲清楚为什么会需要这个技术。
(2)知识剖析:
讲知识点的时候,尽可能的成体系,学会成体系的去给别人介绍知识。现在很多做的都是零散的,没有分类。
(3)常见问题:
最少列出1个常见问题。
(4)解决方案:
写清楚常见问题的解决方案。
(5)编码实战:
尽可能的去寻找在真实项目中在用的。如果你能找到某个网站在用你说的知识点,这是最好的。学以致用,否则当成练习题就没有意义了。多准备一些demo,讲解过程中将知识点和demo结合,便于大家理解所讲解的知识点。
(6)拓展思考:
知识点之外的拓展思考,由分享人进行讲解,这些东西就是所谓的深度,也是一个人技术水准高低比较的表现。
(7)参考文献:
引入参加文献的时候,在引用的句子后面加上序号【1】。参考文献中列出详细来源。不要去抄别人的东西,这是一个基本的态度。
(8)更多讨论:
Q1:提问人:问题?
A1:回答人(可以是分享人,也可以是其他学员):回答
Q2:提问人:问题?
A2:回答人(可以是分享人,也可以是其他学员):回答
Q3:提问人:问题?
A3:回答人(可以是分享人,也可以是其他学员):回答
(9)鸣谢:
感谢XX、XX师兄,此教程是在他们之前技术分享的基础上完善而成。
(10)结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
大家好,我是IT修真院深圳分院第十三期学员,一枚正直纯洁善良的JAVA程序员。 今天给大家分享一下,修真院官网JAVA任务二里面的知识点:
什么是实体表,什么是关系表,一对多和多对多应该怎么设计表?
1 背景介绍
在任务三设计数据库的时候,需要理清表与表数据之间的关系,这时候就需要知道什么是实体表和关系表。然后根据他们之间的关系设计表
2.知识剖析
2.1什么是实体表
实体表就是对应实际的对象的表,比如:学生表,老师表
2.2什么是一对一、一对多和多对多?
1.一对一、一对多和多对多都是指数据表与表中的数据关系,不是表与表之间的关系
2.一对一:一个班主任只属于一个班级,一个班级也只能有一个班主任
3.一对多:一个顾客对应多个订单,而一个订单只能对应一个客户
4.多对多:一个学生有多个老师,一个老师有多个学生
2.3什么是关系表
关系表是表示表与表之间的数据关系,我的理解是:关系表设计一般只存在多对多。
3.常见问题
1)什么是实体表?
2)什么是关系表?
3)怎么设计表,多对多怎么在实际代码中表示?
4.解决方案:
设计表:一对一和一对多在表中多加一个关联字段,多对多多设计一个关联表
代码中实体类的编写:一对一在实体类中多加一个属性,一对多在实体类中多加一个集合属性,多对多就是在两个实体类中各加一个集合属性
5.编码实战
学生表
老师表
关系表
学生实体类
package mybatisTest.pojo; import java.util.List; public class Student { private Integer stuId; private String stuName; private Integer age; private List<Teacher> teachers; public Integer getStuId() { return stuId; } public void setStuId(Integer stuId) { this.stuId = stuId; } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public List<Teacher> getTeachers() { return teachers; } public void setTeachers(List<Teacher> teachers) { this.teachers = teachers; } @Override public String toString() { return "Student{" + "stuId=" + stuId + ", stuName='" + stuName + '\'' + ", age=" + age + ", teachers=" + teachers + '}'; } }
老师实体类
package mybatisTest.pojo;
import java.util.List;
public class Teacher {
private Integer teaId;
private String teaName;
private String gender;
private List students;
public Integer getTeaId() { return teaId; } public void setTeaId(Integer teaId) { this.teaId = teaId; } public String getTeaName() { return teaName; } public void setTeaName(String teaName) { this.teaName = teaName; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; } @Override public String toString() { return "Teacher{" + "teaId=" + teaId + ", teaName='" + teaName + '\'' + ", gender='" + gender + '\'' + ", students=" + students + '}'; }
}
dao层接口
package mybatisTest.dao; import mybatisTest.pojo.Student; import java.util.List; public interface StuDao { List<Student> queryStu(); } package mybatisTest.dao;
。
import mybatisTest.pojo.Teacher;
import java.util.List; public interface TeaDao { List<Teacher> queryTea(); }
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="mybatisTest.dao.StuDao"> <resultMap id="student" type="mybatisTest.pojo.Student"> <result property="stuId" column="stu_id"/> <result property="stuName" column="stu_name"/> <result property="age" column="stu_age"/> <collection property="teachers" ofType="mybatisTest.pojo.Teacher"> <id property="teaId" column="tea_id"/> <result property="teaName" column="tea_name"/> <result property="gender" column="gender"/> </collection> </resultMap> <select id="queryStu" resultMap="student"> select s.*,t.* from student s,teacher t,stu_tea st where s.stu_id=st.stu_id and t.tea_id=st.tea_id </select> </mapper>
<--------------------------------------------------------------------------->
<?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="mybatisTest.dao.TeaDao"> <resultMap id="teacher" type="mybatisTest.pojo.Teacher"> <result property="teaId" column="tea_id"/> <result property="teaName" column="tea_name"/> <result property="gender" column="gender"/> <collection property="students" ofType="mybatisTest.pojo.Student"> <id property="stuId" column="stu_id"/> <result property="stuName" column="stu_name"/> <result property="age" column="stu_age"/> </collection> </resultMap> <select id="queryTea" resultMap="teacher"> SELECT t.*,s.* from teacher t,student s,stu_tea st WHERE st.tea_id=t.tea_id and s.stu_id=st.stu_id </select> </mapper>
测试
Student{stuId=1, stuName='张三', age=15, teachers=[Teacher{teaId=1, teaName='赵六老师', gender='男', students=null}, Teacher{teaId=2, teaName='钱七老师', gender='男', students=null}, Teacher{teaId=3, teaName='二三老师', gender='女', students=null}]} Student{stuId=2, stuName='李四', age=16, teachers=[Teacher{teaId=2, teaName='钱七老师', gender='男', students=null}, Teacher{teaId=3, teaName='二三老师', gender='女', students=null}]} Student{stuId=3, stuName='王武', age=17, teachers=[Teacher{teaId=1, teaName='赵六老师', gender='男', students=null}, Teacher{teaId=3, teaName='二三老师', gender='女', students=null}]}
<----------------------------------------------------------------------------------------->
Teacher{teaId=1, teaName='赵六老师', gender='男', students=[Student{stuId=1, stuName='张三', age=15, teachers=null}, Student{stuId=3, stuName='王武', age=17, teachers=null}]} Teacher{teaId=2, teaName='钱七老师', gender='男', students=[Student{stuId=1, stuName='张三', age=15, teachers=null}, Student{stuId=2, stuName='李四', age=16, teachers=null}]} Teacher{teaId=3, teaName='二三老师', gender='女', students=[Student{stuId=3, stuName='王武', age=17, teachers=null}, Student{stuId=2, stuName='李四', age=16, teachers=null}, Student{stuId=1, stuName='张三', age=15, teachers=null}]}
6.扩展思考:
在多对多的设计中,关系表好像一般都没有实体类,但如果我要修改多对多之间的关系怎么修改?
注:本人初学java者,如有不对敬请指出,谢谢!
7.参考文献
CSDN、百度百科
8.更多讨论
7.参考文献
CSDN、百度百科
8 更多讨论
总结:
1))什么是实体表?
实体表就是对应实际的对象的表,比如:学生表,老师表
2)什么是关系表?
关系表是表示表与表之间的数据关系,我的理解是:关系表设计一般只存在多对多。
3)怎么设计表,多对多怎么在实际代码中表示?
设计表:一对一和一对多在表中多加一个关联字段,多对多多设计一个关联表
代码中实体类的编写:一对一在实体类中多加一个属性,一对多在实体类中多加一个集合属性,多对多就是在两个实体类中各加一个集合属性
温馨提示:本人初学java者,如有不对敬请指出,谢谢!
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。
快来与我一起学习吧~技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。
快来与我一起学习吧~ http://www.jnshu.com/login/1/28836439
视频:https://pan.baidu.com/s/1oxi95RhZmUTARhKQwjXUGA
[无名弟子]黄东江 发表于 2018-10-16 16:50:56 #1
小课堂分享的内容挺使用的,在复盘中可以用到
回复