说明:做后端开发,对于表结构应该特别的熟悉。但是常规的数据库软件,不能做到非常直观的展现表与表的关联关系。导致程序员开发频繁的查询数据库字典(包含了项目中所有的表设计)
PowerDesigner最初由Xiao-Yun Wang(王晓昀)在SDP Technologies公司开发完成。PowerDesigner是Sybase的企业建模和设计解决方案,采用模型驱动方法,将业务与IT结合起来,可帮助部署有效的企业体系架构,并为研发生命周期管理提供强大的分析与设计技术。PowerDesigner独具匠心地将多种标准数据建模技术(UML、业务流程建模以及市场领先的数据建模)集成一体,并与 .NET、WorkSpace、PowerBuilder、Java™、Eclipse 等主流开发平台集成起来,从而为传统的软件开发周期管理提供业务分析和规范的数据库设计解决方案。此外,它支持60多种关系数据库管理系统(RDBMS)/版本。PowerDesigner运行在Microsoft Windows平台上,并提供了Eclipse插件。
总结:PD是数据库设计业务分析的一站式的解决方案.
1).PD安装包路径
2).PD安装路径
3).PD汉化说明
汉化完成之后,发送桌面快捷方式即可
1).物理模型图创建
2).如果数据库类型选项不能正常展现,则按照如下操作进行
3).关于面板工具说明
考虑要素:
1.表名
2.字段信息
3.字段类型
4.主键说明
5.主键自增
1).编辑表名
2).编辑字段
3).主键自增
双击主键字段行首.跳出右侧的操作
4).动态sql语句
业务说明: 数据表通过建立主外键的关联关系来实现业务的关联.
结构说明: 一对一核心依然是主外键关联(特殊). 双向一对一
场景说明: user表 用户信息------user_info表 用户详情信息
关联问题:
1. user表----->user_info表 一个用户对应一个用户详情信息.
2. user_info表------>user表 一个用户详情表对应一个用户
如果表结构满足上述的关系,则是 典型一对一
业务说明: 用户和部门
关联问题:
user表------部门表 一个用户(员工) -------一个部门 1对1
部门表------user表 一个部门-----------多个员工 1对多
说明: 多对多的实质就是双向一对多
业务场景:
权限表--------角色表
1个权限 ---------- 多个角色 1-多
1个角色--------------多个权限 1-多
表画法: 如果表设计出现了多对多,则一般都会有中间表参与.
1.检查JDK版本
2.JDK本地路径
3.删除多余的JDK配置
4.配置JDK
Maven 是一站式的项目管理工具. 负责管理项目的生命周期 创建/更新/维护/打包/部署
核心机制: 本地仓库 私服镜像 中央仓库
1).导入maven配置
2).导入settings文件
3).settings文件私服镜像配置
连接的阿里云的服务器仓库
<mirror>
<id>aliyun</id>
<name>aliyun for maven</name>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>
1.8
</maven.compiler.compilerVersion>
</properties>
</profile>
4).settings文件私服镜像配置2(二选一)
连接的阿里云私服镜像服务器
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
说明: maven中 如果 A----->B-------->C 那么在项目中引入A包,就可以自动的引入BC!!!如何实现的???
Maven工具解析原理:
1). 用户通过dependency标签依赖jar包时,maven工具会通过坐标去本地仓库中查找改jar包文件.
2). maven查找jar包文件之后,解析当前jar包的POM.xml文件,引入相关依赖.
问题:jar包文件 如何保证在远程传输的过程中不被别人篡改???
算法介绍: SHA1算法
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
<?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>
<!--maven坐标 将来通过坐标唯一定位项目文件的位置 -->
<groupId>com.jt</groupId>
<artifactId>springboot_demo1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot_demo1</name>
<description>Demo project for Spring Boot</description>
<!--parent标签作用:管理所有被springBoot整合之后的jar包的版本定义 springBoot特点: 开箱即用 引入jar包就可以添加相对应的功能.
定义了当前springBoot2.3.1所有的相关依赖的版本号信息. -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--在webjar包的内部关联整合了所有的springMVC的jar包信息. 所以只需要引入一个jar包,则可以关联整合所有的有关mvc的依赖包信息 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<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>
<!--负责项目打包 更新 maven操作相关的配置 必须添加 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
问题说明: 为什么指定了主启动类的方式 tomcat服务器可以自动的运行,并且SpringMVC的框架可以自动的配置?
解释:
package com.jt;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication //2.springBoot最为重要的入口注解
public class SpringBootRun {
/**
* 程序执行的过程:
* 1.利用main方法执行springboot启动程序.
* 2.程序加载@SpringBootApplication
* @Target(ElementType.TYPE) 当前注解对类有效
@Retention(RetentionPolicy.RUNTIME) 在运行期改注解有效
@Documented 相关文档信息
@Inherited 可以被继承
--- 上述的注解是元注解
@SpringBootConfiguration springBoot的主启动类就是一个配置类
@EnableAutoConfiguration
开箱即用:只要导入指定的jar包文件,则可以自动的实现配置!!!
@AutoConfigurationPackage //定义包扫描的路径信息 主启动类的包路径
以后写代码至少同包及子包中.
@Import(AutoConfigurationImportSelector.class) 实现了开箱即用的功能
总结: springBoot中选择器的配置.扫描pom.xml文件中的jar包文件.
之后将jar包文件中的配置予以执行.
AutoConfigurationImportSelector implements
DeferredImportSelector, BeanClassLoaderAware,
ResourceLoaderAware, BeanFactoryAware,
EnvironmentAware, Ordered
说明: Aware是Spring框架从项目启动-到项目的效果的各个时期的接口.
了解: 加载第三方的类信息
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
*
* @param args
*/
public static void main(String[] args) {
SpringApplication.run(SpringBootRun.class, args);
}
}
说明: 当项目开发完成之后,需要将项目进行打包部署. 将项目中的.java文件编译为.class文件之后打包到Linux服务器中运行.
运行jar包项目: 利用dos命令窗口执行 java -jar demo.jar
关闭服务器: ctrl + c