当前位置: 首页 > news >正文

【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;//更新时间
}

提供启动类

运行测试

http://www.xdnf.cn/news/1128763.html

相关文章:

  • 前端面试专栏-工程化:25.项目亮点与技术难点梳理
  • Python 操作Excel工作表:添加、删除、移动、隐藏
  • omniparser v2 本地部署及制作docker镜像(20250715)
  • Linux 环境下安装 Node.js v16.13.0 完整指南
  • Unity沉浸式/360View/全景渲染
  • LeetCode--46.全排列
  • 深度学习 Pytorch图像分类步骤
  • Linux部署Python服务
  • sglang笔记1: 后端详细阅读版
  • 文心一言4.5开源模型测评:ERNIE-4.5-0.3B超轻量模型部署指南
  • Halcon双相机单标定板标定实现拼图
  • Java线程池深度解析与Spring Boot实战指南
  • resources为什么是类的根目录
  • 策略设计模式分析
  • AI辅助Python编程30天速成
  • 死锁问题以及读写锁和自旋锁介绍【Linux操作系统】
  • LeetCode|Day13|88. 合并两个有序数组|Python刷题笔记
  • MySQL数学函数
  • HALCON+PCL混合编程
  • 从抽象函数到可计算导数 ——SymPy 中占位、求导、代入的完整闭环
  • JVM——编译执行于解释执行的区别是什么?JVM使用哪种方式?
  • K型热电偶电动势以及温度对照表
  • 从基础到进阶:MyBatis-Plus 分页查询封神指南
  • BPE(字节对编码)和WordPiece 是什么
  • [AI-video] Web UI | Streamlit(py to web) | 应用配置config.toml
  • Android 图片压缩
  • Spring应用抛出NoHandlerFoundException、全局异常处理、日志级别
  • 前端开发数据缓存方案详解
  • 1.easypan-登录注册
  • git起步