【SpringBoot】实战-开发模式及环境搭建
实战概述
开发模式
接口文件
环境搭建
1.准备数据库
Postgressql的sql案例脚本
-- 用户表(需用双引号包裹关键字 "user")
CREATE TABLE "user" (id SERIAL PRIMARY KEY, -- SERIAL 替代 auto_increment(证据 ) SERIAL 类型:自动生成唯一自增整数username VARCHAR(20) NOT NULL UNIQUE, -- 强制账户唯一性password VARCHAR(32), -- 预留密码哈希空间nickname VARCHAR(10) DEFAULT '', -- 空字符串默认值 (DEFAULT '') 替代 NULL 值,避免空指针异常email VARCHAR(128) DEFAULT '',user_pic VARCHAR(128) DEFAULT '',create_time TIMESTAMP NOT NULL, -- datetime 转为 TIMESTAMP 强制审计追踪update_time TIMESTAMP NOT NULL
);
-- 添加表注释 独立于表结构的注释存储,不影响 DDL 执行效率
COMMENT ON TABLE "user" IS '用户表';
COMMENT ON COLUMN "user".id IS 'ID';
COMMENT ON COLUMN "user".username IS '用户名';
COMMENT ON COLUMN "user".password IS '密码';
COMMENT ON COLUMN "user".nickname IS '昵称';
COMMENT ON COLUMN "user".email IS '邮箱';
COMMENT ON COLUMN "user".user_pic IS '头像';
COMMENT ON COLUMN "user".create_time IS '创建时间';
COMMENT ON COLUMN "user".update_time IS '修改时间';-- 分类表 建立与用户表的 1:N 关系,限制分类创建者必须存在于用户表
CREATE TABLE category (id SERIAL PRIMARY KEY,category_name VARCHAR(32) NOT NULL,category_alias VARCHAR(32) NOT NULL,create_user INTEGER NOT NULL,create_time TIMESTAMP NOT NULL,update_time TIMESTAMP NOT NULL,-- 外键约束(证据 [[6]][[9]])CONSTRAINT fk_category_userFOREIGN KEY (create_user) REFERENCES "user"(id)ON DELETE NO ACTION ON UPDATE NO ACTION --阻止删除关联用户
);
-- 添加表注释
COMMENT ON TABLE category IS '分类表';
COMMENT ON COLUMN category.id IS 'ID';
COMMENT ON COLUMN category.category_name IS '分类名称';
COMMENT ON COLUMN category.category_alias IS '分类别名';
COMMENT ON COLUMN category.create_user IS '创建人ID';
COMMENT ON COLUMN category.create_time IS '创建时间';
COMMENT ON COLUMN category.update_time IS '修改时间';-- 文章表
CREATE TABLE article (id SERIAL PRIMARY KEY,title VARCHAR(30) NOT NULL,content TEXT NOT NULL, -- 无长度限制且存储更高效cover_img VARCHAR(128) NOT NULL,state VARCHAR(3) DEFAULT '草稿'CHECK (state IN ('已发布', '草稿')), -- 检查约束确保状态值(证据 )category_id INTEGER,create_user INTEGER NOT NULL,create_time TIMESTAMP NOT NULL,update_time TIMESTAMP NOT NULL,-- 外键约束(证据 [[1]][[6]])CONSTRAINT fk_article_categoryFOREIGN KEY (category_id) REFERENCES category(id)ON DELETE SET NULL ON UPDATE CASCADE, -- 分类删除时设为 NULLCONSTRAINT fk_article_userFOREIGN KEY (create_user) REFERENCES "user"(id)ON DELETE CASCADE ON UPDATE CASCADE -- 用户删除时级联删除文章
);
-- 添加表注释
COMMENT ON TABLE article IS '文章表';
COMMENT ON COLUMN article.id IS 'ID';
COMMENT ON COLUMN article.title IS '文章标题';
COMMENT ON COLUMN article.content IS '文章内容';
COMMENT ON COLUMN article.cover_img IS '文章封面';
COMMENT ON COLUMN article.state IS '文章状态: 只能是[已发布]或[草稿]';
COMMENT ON COLUMN article.category_id IS '文章分类ID';
COMMENT ON COLUMN article.create_user IS '创建人ID';
COMMENT ON COLUMN article.create_time IS '创建时间';
COMMENT ON COLUMN article.update_time IS '修改时间';SELECT * FROM big_event.public."user"
2.创建工程
利用手动创建的方式创建SpringBoot框架
首先创建maven工程
补齐资源文件夹resources
补齐配置文件application.yml
我们需要让当前工程集成一个父工程
添加web起步依赖,postgresql驱动,mybatis依赖
3.配置文件
配置mybatis的配置信息
查看url
4.创建包结构准备实体类
包结构
实体类
package com.zwh.pojo;import java.time.LocalDateTime;public class Article {private Integer id;//主键IDprivate String title;//文章标题private String content;//文章内容private String coverImg;//封面图像private String state;//发布状态 已发布|草稿private Integer categoryId;//文章分类idprivate Integer createUser;//创建人IDprivate LocalDateTime createTime;//创建时间private LocalDateTime updateTime;//更新时间
}
package com.zwh.pojo;import java.time.LocalDateTime;public class Category {private Integer id;//主键IDprivate String categoryName;//分类名称private String categoryAlias;//分类别名private Integer createUser;//创建人IDprivate LocalDateTime createTime;//创建时间private LocalDateTime updateTime;//更新时间
}
package com.zwh.pojo;import java.time.LocalDateTime;public class User {private Integer id;//主键IDprivate String username;//用户名private String password;//密码private String nickname;//昵称private String email;//邮箱private String userPic;//用户头像地址private LocalDateTime createTime;//创建时间private LocalDateTime updateTime;//更新时间
}
提供启动类
运行测试