1.物理模型图设计
1.1 导入京淘数据库
1.1.1安装SqlYog
双击运行
1.1.2 链接数据库
1.1.3 导入JT数据库
说明:导入课前资料中的jtdb.sql 数据库文件.
方式2: source 路径/jtdb.sql;
1.2 Power designer
1.2.1 PD介绍
PowerDesigner最初由Xiao-Yun Wang(王晓昀)在SDP Technologies公司开发完成。PowerDesigner是Sybase的企业建模和设计解决方案,采用模型驱动方法,将业务与IT结合起来,可帮助部署有效的企业体系架构,并为研发生命周期管理提供强大的分析与设计技术。PowerDesigner独具匠心地将多种标准数据建模技术(UML、业务流程建模以及市场领先的数据建模)集成一体,并与 .NET、WorkSpace、PowerBuilder、Java™、Eclipse 等主流开发平台集成起来,从而为传统的软件开发周期管理提供业务分析和规范的数据库设计解决方案。此外,它支持60多种关系数据库管理系统(RDBMS)/版本。PowerDesigner运行在Microsoft Windows平台上,并提供了Eclipse插件。
1).PD 可以根据不同的数据库类型,动态的生存Sql语句.
2).PD是一种可视化的软件.可以将表与表之间的关联关系,直观的展现.
1.2.2 PD安装和使用
1).执行EXE文件
2).汉化软件
1.2.4创建物理模型图
1.2.5 PD入门
1.2.6 主键自增的设定
1.3 表结构学习
1.3.1 一对一
业务场景:
User表~~~~~UserInfo表
从左向右看 : 1个用户1个详情
从右向左看: 1个详情1个用户
1.3.2 一对多
业务场景:
用户和部门
从左向右看: 1个用户对应1个部门 一对一
从右向左看: 1个部门有多个用户 一对多
1.3.3 多对多
业务场景:
角色和权限
1个角色对应多个权限 一对多
1个权限对应多个角色 一对多
1.3.4 京淘项目表结构
2.SpringBoot加强
2.1 检查Maven私服镜像位置
检查Maven私服镜像的地址
<mirror>
<id>aliyun</id>
<name>aliyun for maven</name>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
2.2 IDEA安装SpringBoot插件
添加插件之后,重启IDEA即可.
2.3 IDEA创建SpringBoot
1).挑选SpringBoot
2).编辑模块内容
3).选择jar包依赖
2.4 SpringBoot项目创建方式2
2.4.1选择maven项目
2.4.2 构建项目
2.4.3 编辑POM.xml文件
<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>
</properties>
<dependencies>
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2.4.4编辑主启动类
package com.jt;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication //添加SpringBoot注解
public class SpringBootRun {
public static void main(String[] args) {
SpringApplication.run(SpringBootRun.class,args);
}
}
2.5 SpringBoot配置说明
<?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>
2.6 SpringBoot启动原理说明
1.SpringBoot整体运行流畅?
2.SpringBoot为什么可以开箱即用?
2.7 关于SpringBoot配置文件说明
2.7.1 properties说明
说明:
1.pro文件本身是key-value结构的,并且本身都是字符串的定义.
2.SpringBoot程序读取pro文件默认使用ISO-8859-1格式编码. 如果需要读取pro文件,则需要手动的指定UTF-8格式.
2.7.yml配置文件
# yml 1.key-value结构
# 2.key-value之间使用": "方法链接
# 3.YML配置文件有缩进的效果.
# 4.YML配置文件默认采用utf-8编码.
server:
servlet:
context-path: / #设定项目发布路径
port: 8090
2.8 配置文件为属性赋值的方式
2.8.1 业务场景
场景:需要实现文件上传操作,需要指定文件上传的目录.如果将上传文件的目录信息直接写死到代码中,这样的代码耦合性高.不便于扩展.
2.8.2 利用@Value方式赋值
2.8.2.1 编辑YML配置文件
# yml 1.key-value结构
# 2.key-value之间使用": "方法链接
# 3.YML配置文件有缩进的效果.
# 4.YML配置文件默认采用utf-8编码.
server:
servlet:
context-path: / #设定项目发布路径
port: 8090
#配置图片上传路径
image:
localDir: D:/JT-SOFT/images
2.8.2.2 编辑FileController
package com.jt.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class FileController {
//问题:如何将配置作为动态的获取?????
@Value("${image.localDir}") //spel表达式Spring框架所提供的.
private String localDir; // = "D:\\JT-SOFT\\images"; //如果放到这里则代码的耦合性高.
@RequestMapping("/getPath")
public String getPath(){
System.out.println("指定图片地址:"+localDir);
return "图片地址为:"+localDir;
}
}
2.8.3 指定配置文件为属性赋值
需求: YML配置文件是SpringBoot整合第三方配置文件,如果将业务配置与YML配置写到一起,则不方便管理.能否在指定的配置文件(pro)中实现属性的赋值.
2.8.3.1 编辑Pro文件
2.8.3.2指定字符编码格式
2.8.3.3 编辑FileController
package com.jt.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
//导入配置文件,之后由Spring容器扫描
@PropertySource(value = "classpath:/properties/image.properties", encoding = "UTF-8")
public class FileController {
@Value("${image.localDir}") //spel表达式Spring框架所提供的.
private String localDir; // = "D:\\JT-SOFT\\images"; //如果放到这里则代码的耦合性高.
@RequestMapping("/getPath")
public String getPath(){
System.out.println("指定图片地址:"+localDir);
return "图片地址为:"+localDir;
}
}