CGB2005 0825 jt1

PK 主键 对应链接 https://blog.csdn.net/qq_16804847/article/details/108216756
jt1 江哥

constraint primary key
是在这个表中只能出现一次(一张表自己的关系)

FK 主外键关系

constraint foreign references
两张或者几张表的约束(多张表的关系)
数据库-主键和外键及其约束
1:什么是主键
  在一张表中,用来唯一标识一条记录的字段集,叫做主关键字或者主关键码,简称主键(或主码),这里说"字段集"是因为主键可能用一个字段或者多个字段来表示。举例来看:

学生表(学号, 姓名, 性别,专业编号),这里学号是主键,一个学号id就可以唯一标识一个学生的信息。另一个表:学生选课表(学号, 课程号, 成绩),这里(学号, 课程号)是主键,因为一个学号(即一个学生)可以选择多门课程,一个课程号(即一个课程)可以被多个学生选择,无法用一个字段来标识一条学生选课的信息记录,而使用(学号, 课程号)这两个字段作为关键字就可以唯一标识学生的选课信息。

2:什么是外键?
  一张表的非主属性是另一个表的主属性就是这个表的外键。这里有两个分别为: 学生表(学号, 姓名, 性别,专业编号),专业信息表(专业编号,专业名称,专业备注信息)。学生表中主键是学号,专业信息表中主键是专业编号。学生表中的非主属性专业编号恰好是专业信息表中的主键。我们就称这个专业编号是学生表的外键。像这样,一个表的非主属性是另一个表的主属性,该非主属性就是外键。

一个表的非主属性是另一个表的主属性,该非主属性就是外键

在这里插入图片描述

概念定义:什么是父表和子表?
  有两张表A表和B表,表A中的一个字段id是外键,表B中的一个字段id是主键,那么称B为父表,A为子表。就是说一个表中外键字段(相当于这里的A表)是另一个表中(相当于这里的B表)的主键。 还是上面的两个表来举例理解:学生表(学号, 姓名, 性别,专业编号),专业信息表(专业编号,专业名称,专业备注信息)。这里学生表是子表,专业信息表是父表。

设置表的外键的作用在于建立与父表的联系,比如在专业信息表中某个专业编号的id为’1001’,删除这个id后,则学生表中的专业编号id为’1001’的记录也随着删除,这样做的目的在于***保证表的完整性***。

数据库的三种约束
1.实体完整性约束指的是主键不能为空,如果主键为空了还怎么唯一标识一条记录。
2.参照完整性约束,即外键的约束,某一外键的值必须在它引用的主键字段中存在。如,学生表中专业编号属性的值,必须都存于专业信息表中的专业编号属性中。想一想也就明白了,一个学生(大学生)怎么可能属于一个不存在的专业。
3.用户自定义完整性约束,指的是一些用户自己设定的约束,例如字段是否可以为空,字段值的取值范围(如:人的性别只能取男、女)。

换软件 idea
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
https://blog.csdn.net/qq_16804847/article/details/107696409
idea入门博客

PowerDesigner数据库建模工具

在这里插入图片描述
在这里插入图片描述
数据库可能全空 去找问题集:(错误)
https://blog.csdn.net/qq_16804847/article/details/107108208
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
PowerDesigner 如何打开Palette工具面板
问题:powerdesigner用了一段时间发现工具面板(palette)不见了。

解决:

方案一:tools->customize toolbars->palette

方案二:右键工具栏->customize toolbars->palette

点自定义工具栏
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

drop table if exists user;

/*==============================================================*/
/* Table: user                                                  */
/*==============================================================*/
create table user
(
   user_id              int not null,
   name                 varchar(40),
   primary key (user_id)
);

主键自增理解 auto_increment

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

drop table if exists user;

/*==============================================================*/
/* Table: user                                                  */
/*==============================================================*/
create table user
(
   user_id              int not null auto_increment,
   name                 varchar(40),
   primary key (user_id)
);

一对一
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
还想标明一对一
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一对多
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分析图
记得主键有唯一性约束即可 主键只能一对一
在这里插入图片描述
多对多
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是一个角色只能由一个权限
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
看表
在这里插入图片描述
晚上 再自己听一次复述14.59前

自我分析
在这里插入图片描述
分类ID和商品ID 一对一关系 分类ID是主键 商品从
分类ID和所属分类 一对多关系 分类ID是主键 所属分类从
在这里插入图片描述
如上图 多对多理解
权限表~中间表 一个权限编号对应多个权限编号 左主 右从
权限表~中间表 一个角色编号对应多个角色编号 左主 右从

中间表 多个权限编号对应多个角色编号 都是从键 (没有唯一性)

**1.规矩箭头 由从表指向主表

2.主键是唯一的 从键是不唯一的**

Springboot加强

在这里插入图片描述
在这里插入图片描述
创建第一个demo
在这里插入图片描述
在这里插入图片描述
编辑模块内容
在这里插入图片描述
添加依赖
在这里插入图片描述
自我实现
在这里插入图片描述
再添加普通maven项目
在这里插入图片描述
在这里插入图片描述
编辑pom.xml文件
复制粘贴

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如上图判断 写错了 是

SpringApplication.run(SpringbootRun.class,args);

pom.xml解释

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.jt</groupId>
	<artifactId>springboot_demo1</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>springboot_demo1</name>
	<description>入门案例</description>

	<!--parent标签作用: 定义了SpringBoot中所有关联项目的版本号信息.-->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.3.3.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>


	<properties>
		<java.version>1.8</java.version>
		<!--项目打包时,跳过测试类打包-->
		<skipTests>true</skipTests>
	</properties>

	<!--开箱即用:SpringBoot项目只需要引入少量的jar包及配置,即可拥有其功能.
		spring-boot-starter 拥有开箱即用的能力.
		maven项目中依赖具有传递性.
			A 依赖  B  依赖 C项目   导入A bc会自动依赖
	-->
	<dependencies>
		<!--直接依赖web springMVC配置-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<!--springBoot-start SpringBoot启动项  -->
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<!--SpringBoot重构了测试方式 可以在测试类中 直接引入依赖对象-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

	<!--在项目打包部署时生效,如果不添加build,则程序发布时不然会报
		项目中没有main方法.
	-->
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>


**

parent

定义了所有关联的版本号**
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

properties

在这里插入图片描述
在这里插入图片描述
**

dependencies依赖

**
在这里插入图片描述
在这里插入图片描述
晚上 16.09 -Aop
开箱即用的具体能力 如下两图
在这里插入图片描述
在这里插入图片描述
实例
在这里插入图片描述

在这里插入图片描述

上面缺一张图 A B C (over)

在这里插入图片描述
如下图 有了它 就可以正常启动了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
启动原理

右键运行在这里插入图片描述

到底是怎么启动的 想要看到原理

理解开箱即用的原理

在这里插入图片描述
加了jar包依赖 将来就会自动运行 得有人去加载 会通过程序去加载
csdn文档上的问题 晚上(over)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
启动之初 把包含过滤器的都给过滤掉 先不加载
提前过滤掉过滤器
晚上 16.26一番话 解释
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
不理解 再看源码

我本身也是个配置类
在这里插入图片描述
在这里插入图片描述

只要在主启动类 之后 再引入其他配置类之后
主启动类本身就是一个超大的配置类
大配置+小配置
如下 小文件也是配置文件 配置生效
内部再表示
在这里插入图片描述
上面的图的总结
在这里插入图片描述
完成自动配置 最重要的注解
完成开箱即用的配置
在这里插入图片描述
看源码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
晚上 16.38 有一张图 如下 更多的
到主启动类下面对应的包才可以 比如主启动类在com.jt 其他实现要在com.jt.pojo下面
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

什么叫开箱即用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择器选择了包去加载 由选择器去定义

遗漏 去码云找pom(over)

总结大表
在这里插入图片描述
在这里插入图片描述
yml
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
自我实现
在这里插入图片描述
注释
在这里插入图片描述

在这里插入图片描述
执行
在这里插入图片描述

在这里插入图片描述
csdn 晚上17.16 缺少了(over)

业务场景

在这里插入图片描述

场景:需要实现文件上传操作,需要指定文件上传的目录.如果将上传文件的目录信息直接写死到代码中,这样的代码耦合性高.不便于扩展.
在这里插入图片描述

动态获取 controller层里面的 用yml

新建一个包 再建一个类
在这里插入图片描述
自我实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自我实现(少了注释 等码云上传)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

指定配置文件(yml)为属性赋值(上面已实现 动态)

指定配置文件为属性赋值

需求: YML配置文件是SpringBoot整合第三方配置文件**,如果将业务配置与YML配置写到一起,则不方便管理**.能否在指定的配置文件(pro)中实现属性的赋值.

编辑Pro文件

在这里插入图片描述
在这里插入图片描述
新建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
导入配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输出有乱码
在这里插入图片描述
再来一次
在这里插入图片描述
在这里插入图片描述
避免中文出现乱码
在这里插入图片描述

对应yml
在这里插入图片描述
自我实现pro的:
暂时不去做在pro里加中文的
在这里插入图片描述
在这里插入图片描述

#编辑pro配置文件 key=value
image.localDir=C:/Users/77/Desktop/t

在这里插入图片描述
回去看问题
目的是在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
未结任务
今天稍微有点点没有弄完 晚上

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值