【天机论坛】项目环境搭建和数据库设计

目录

涉及技术

分类 技术 作用简述
服务器端技术 Spring、Spring Boot、Spring MVC 后端核心框架,Spring Boot 用于快速搭建项目,Spring MVC 处理请求分发
服务器端技术 MyBatis 数据库持久层框架,简化 SQL 操作
浏览器端技术 HTML、CSS、JavaScript 前端基础技术栈,实现页面结构、样式与交互逻辑
浏览器端技术 jQuery、Bootstrap 前端快速开发工具库,jQuery 简化 DOM 操作,Bootstrap 提供响应式布局组件
数据库 MySQL 主流关系型数据库,用于存储用户、帖子等业务数据
项目构建工具 Maven 项目依赖管理与构建工具,统一管理 Jar 包依赖、编译打包流程
版本控制工具 Git + Gitee 代码版本管理工具,Gitee 作为代码托管平台,方便团队协作与代码备份

数据库设计

数据库名字:forum_db

用户表 t_user

  • 可以从我们的期望UI图里面提取出很多字段,值得注意的是creatTime和updateTime这两个字段是强制要求的每张表都要有


字段 类型 非空(Y/N) 主键(Y/N) 默认值 备注
id bigint Y Y 编号,主键自增
username varchar(20) Y N 用户名,唯一
password varchar(32) Y N 加密后的密码
nickname varchar(50) Y N 昵称
phoneNum varchar(20) N N 手机号
email varchar(50) N N 电子邮箱
gender tinyint Y N 2 性别0女,1男,2保密
salt varchar(32) Y N 为密码加盐
avatarUrl varchar(255) N N 用户头像路径
articleCount int Y N 0 发帖数量
isAdmin tinyint Y N 0 是否管理员0否,1是
remark varchar(1000) N N 备注,自我介绍
state tinyint Y N 0 状态0正常,1禁言
deleteState tinyint Y N 0 是否删除,0否,1是
createTime dateTime Y N 创建时间,精确到秒
updateTime dateTime Y N 更新时间,精确到秒

版块表 t_board

期望UI图

字段 类型 非空(Y/N) 主键(Y/N) 默认值 备注
id bigint Y Y 编号,主键自增
name varchar(50) Y N 版块名
articleCount int Y N 0 帖子数量
sort int Y N 0 排序优先级,升序
state tinyint Y N 0 状态0正常,1禁用
deleteState tinyint Y N 0 是否删除,0否,1是
createTime dateTime Y N 创建时间,精确到秒
updateTime dateTime Y N 更新时间,精确到秒

帖子表 t_article

期望UI图

字段 类型 非空(Y/N) 主键(Y/N) 默认值 备注
id bigint Y Y 编号,主键自增
boardId bigint Y N 关联板块编号
userId bigint Y N 发帖人,关联用户编号
title varchar(100) Y N 帖子标题
content text Y N 帖子正文
visitCount int Y N 0 访问量
replyCount int Y N 0 回复数
likeCount int Y N 0 点赞数
state tinyint Y N 0 状态,0正常,1禁用
deleteState tinyint Y N 0 是否删除,0否,1是
createTime dateTime Y N 创建时间,精确到秒
updateTime dateTime Y N 更新时间,精确到秒

帖子回复表 t_article_reply

期望UI图

字段 类型 非空(Y/N) 主键(Y/N) 默认值 备注
id bigint Y Y 编号,主键自增
articleId bigint Y N 关联帖子编号
postUserId bigint Y N 楼主用户,关联用户编号
replyId bigint N N 关联回复编号,支持楼中楼
replyUserId bigint N N 楼主下的回复用户编号,支持楼中楼
content varchar(500) Y N 回贴内容
likeCount int Y N 0 点赞数
state tinyint Y N 0 状态,0正常,1禁用
deleteState tinyint Y N 0 是否删除,0否,1是
createTime dateTime Y N 创建时间,精确到秒
updateTime dateTime Y N 更新时间,精确到秒

站内信表 t_message

期望UI图

字段 类型 非空(Y/N) 主键(Y/N) 默认值 备注
id bigint Y Y 编号,主键自增
postUserId bigint Y N 发送者,关联用户编号
receiveUserId bigint Y N 接收者,关联用户编号
content varchar(255) Y N 内容
state tinyint Y N 0 状态,0未读,1已读,2已回复,默认0
deleteState tinyint Y N 0 是否删除,0否,1是
createTime dateTime Y N 创建时间,精确到秒
updateTime dateTime Y N 更新时间,精确到秒

项目配置和热部署

SpringBoot热部署

  • 引入这个依赖,修改项目代码的时候就不用再重新启动项目,导致如果是很大的项目重启浪费时间了
  • 记得还要在idea中设置这个

测试环境是否正常

  • 手动关闭打包的时候执行测试代码,如果不关闭则会导致打包的时候会把测试代码也一起打包,有可能会在生产环境是导致效率降低。

GIT远程仓库克隆到项目本地仓库

  • 把远程仓库克隆到项目本地方便项目修改的时候保存不同的版本,如果克隆成功就会有gitee
  • 可以使用命令来操作,在idea的终端

测试数据库连接

  • 配置完数据库后,可以在测试类运行这个代码来测试数据库是否连接成功

配置mybatis扫描路径

Mybatis扫描路径的作用是什么? 这里用MapperScan注解来指明路径是dao层中的类

  • 自动扫描指定文件路径(通常是Mapper)里面的接口,让Spring启动时就统一管理,那么使用这些接口对象的时候就不需要创建可以直接用Autowired注入

  • 还有一个重要的原因就是因为他让Spring统一管理了就替代了对每个接口文件都加上Mapper注解

  • 这是dao层中的一个类,有这个就不用加上Mapper注解让Spring来管理了。mybatis会自动扫描让Spring管理

相关推荐
m0_6138562932 分钟前
mysql如何利用事务隔离级别解决特定业务冲突_mysql隔离方案选型
jvm·数据库·python
Adios79442 分钟前
VPR:Pitts50K和Norland数据集下载
数据库
东风破1371 小时前
DM用户权限、表、约束等对象的基本操作,SQL日志的开启介绍
数据库·sql·dm达梦数据库
abcnull1 小时前
用javaparser做精准测试
java·ast·静态代码分析·精准测试·javaparser
叶小鸡1 小时前
Java 篇-项目实战-苍穹外卖-笔记汇总
java·开发语言·笔记
收获不止数据库1 小时前
达梦9发布会归来:AI 时代,我们需要一款什么样的数据库?
数据库·人工智能·ai·语言模型·数据分析
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题】【Java基础篇】第22题:HashMap 和 HashSet 有哪些区别
java·开发语言·哈希算法·散列表·hash
小宇的天下1 小时前
Virtuoso GUI 界面中的关键模块定义
数据库
bqq198610261 小时前
MySQL 5.7 与 MySQL 8.0 的主要区别
数据库·mysql
juniperhan1 小时前
Flink 系列第21篇:Flink SQL 函数与 UDF 全解读:类型推导、开发要点与 Module 扩展
java·大数据·数据仓库·分布式·sql·flink