一对多:
客户和订单
部门和员工
多对多:
菜谱和饭店
小黄车和人
学生和课程
一对一:
人和身份证
公司和公司地址
一对多的关系的建表的原则:
在多的一方创建一个字段,这个字段作为外键指向一的一方的主键
多对多的设计原则:
创建一个第三种表,中间表,有两个外键分别指向一方的主键和另一方的主键
一对一的设计原则:
唯一外键对应的方式(unique),
主键对应,
一对一的情况比较少见,其实就可以合并成一张表了
二.约束
1.约束,用来保证数据的完整性
多表约束,外键约束
方式一
alter table 外键表名 add foreign key(外键名) reference 主表名(主键)
方式二,在创建表的时候使用
FOREIGN KEY(外键) REFERENCES 主键表(主键)
三.多表查询
交叉连接(基本不用)--获得的是两个表的笛卡尔积(两个表的乘机)
内连接:inner join---inner可以省略
1.显式内连接 select * from A innner join B on 条件
2.隐式内连接 select * from A ,B where 条件
外链接:outer join---outer可以省略
1.左外链接left (outer) join : 左边表的全部和两表的交集
select * from A left outer join B on 条件
2.右外链接right (outer) join :右边表的全部和两表的交集
select * from A right outer join B on 条件
多表的联查,精髓的部分 让所有的外键和主键相对应!
四.多表子查询
概述:一个sql语句在查询的过程中需要依赖另外的语句
day9 JDBC
一.JDBC完成CRUD的操作
1)JDBC: Java DataBase Connectivity java 数据库的连接
sun公司统一提供的一套接口规范(JDBC),各个数据库的生产商提供实现
2)驱动:两个硬件设备之间通信的桥梁
问题?
什么是JDBC?
什么是DBUtils
什么是DBCP连接池
3)JDBC的开发步骤
1.注册驱动
2.获取连接
3.获取执行sql语句对象
4.处理结果集(只有查询才涉及到结果集)
5.释放资源
二.自定义连接池
三.增强一个方法的三种方式?
1.继承
能够控制这个类的构造的时候,才可以使用继承
2.装饰者模式
a.包装和被包装的对象都需要实现相同的接口
b.包装的对象中需要获得被包装对象的引用
缺点:如果一个接口中有40个方式,我们只想修改其中的一个方法,那么剩下的
39个方法,咱们也要原封不动的写出来
3.动态代理
*被增强的对象只要实现了接口就可以
四.两种数据库连接池
DBCP:
C3P0:
day10 xml
一.使用xml作为配置文件来模拟tomcat
xml的作用;
传输和存取数据
软件的配置
xml的使用
XML的语法
XML的语法
XML的文档声明
第一行和第一列的位置
写法:<?xml 属性名="属性值" 属性名="属性值"?>
version: 必须的,使用1.0
encoding: 字符集,是浏览器打开时候采用的默认的字符集的编码
standalone: 描述xml文档是否需要依赖其他的文件.
XML的注释
跟html一样<!--xml注释-->
XML的元素
元素(标签)
名称中不可以含有 ":"
等等...
XML的属性
XML的特殊字符和CDATA区
CDATA区:
<![CDATA[]]>
使用:引入jar包 dom4j
XML约束:
DTD和Schema
|