【SpringBoot前后端实战–任务打卡小demo】2 数据库设计、后台配置及实体类编写
1数据库设计
数据库:
脚本:
/*
Navicat MySQL Data Transfer
Source Server : mysql
Source Server Version : 80011
Source Host : localhost:3306
Source Database : dailytask
Target Server Type : MYSQL
Target Server Version : 80011
File Encoding : 65001
Date: 2021-05-18 15:51:59
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for task
-- ----------------------------
DROP TABLE IF EXISTS `task`;
CREATE TABLE `task` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`title` varchar(30) DEFAULT NULL,
`ctime` datetime DEFAULT NULL,
`status` int(10) DEFAULT NULL COMMENT '1为完成;0为未完成',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of task
-- ----------------------------
INSERT INTO `task` VALUES ('1', 'Leskovec大佬“图表示学习”论文笔记,继续进行', '2021-04-23 08:45:56', '1');
INSERT INTO `task` VALUES ('5', '测试任务(这是一个测试任务)', '2021-05-18 06:47:32', '0');
INSERT INTO `task` VALUES ('6', '斯坦福大学《图机器学习》课程哔哩哔哩视频', '2021-05-18 14:47:17', '0');
将上述脚本导入navicat即可(需要实现创建名字为dailytask
的数据库)。
2 后台配置
后台项目目录结构一览:
2.1配置文件
用IDEA创建一个springboot项目(步骤这里省去),后台的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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--mybatis和springboot整合-->
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.10</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
</dependency>
<!-- mybatis-plus相关依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
配置文件:application.yml
内容如下:
spring:
datasource:
url: jdbc:mysql://localhost:3306/dailytask?characterEncoding=UTF-8&useUnicode=true&useSSL=true&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
jackson:
date-format: yyyy-MM-dd
# 这个是时区,一定要加,否则会默认为格林尼治时间,即少8小时
time-zone: GMT+8
mybatis-plus:
type-aliases-package: com.example.demo.entity
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath:mapper/*.xml
2.2跨域配置
由于这是一个前后端分离的项目,我们通常需要在后端进行一些跨域配置在config
目录下创建CorsConfig.java
,以解决跨域问题。
package com.example.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Bean
public WebMvcConfigurer corsConfigurer(){
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedHeaders("*")
.allowedMethods("*")
.allowCredentials(true)
.allowedOriginPatterns("*")
.maxAge(3600);
}
};
}
}
3 实体类
项目目前只有一个实体类Task.java
package com.example.demo.entity;
import java.io.Serializable;
import java.util.Date;
/**
* (Task)实体类
*
* @author makejava
* @since 2021-04-23 08:30:51
*/
public class Task implements Serializable {
private static final long serialVersionUID = -75470572328053816L;
private Integer id;
private String title;
private Date ctime;
/**
* 1为完成;0为未完成
*/
private Integer status;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getCtime() {
return ctime;
}
public void setCtime(Date ctime) {
this.ctime = ctime;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}