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

目录

涉及技术

分类 技术 作用简述
服务器端技术 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管理

相关推荐
夏贰四11 分钟前
中小企业搭建业务中台如何控成本?业务中台轻量化落地分几步实施?
数据库·业务中台
林焱RPA39 分钟前
影刀RPA200篇纪念版:最实用的20个自动化场景大盘点
数据库
名字还没想好☜40 分钟前
Go 的 time.After 在 select 循环里内存泄漏:定时器堆积原理与 timer.Reset 正确姿势
java·数据库·golang·go·goroutine
圆山猫1 小时前
[Virtualization](三):RISC-V H-extension 与 Guest 执行模式
android·java·risc-v
caishenzhibiao1 小时前
期货先行者主图 同花顺期货通指标
java·c语言·c#
史呆芬1 小时前
分布式事务实战:微服务跨服务数据一致性解决方案
java·后端·spring cloud
IT界的老黄牛2 小时前
限流命中后该怎么办:直接丢、阻塞等待、延迟重投三种姿势的取舍
java·rocketmq·redisson·令牌桶·削峰·分布式限流
daad7773 小时前
记录matlab状态机demo
java·网络·matlab
每天都要进步哦3 小时前
SQL单行函数详解:字符、数字、日期、转换与通用函数全解析
数据库·mysql
不剪发的Tony老师3 小时前
VeloxDB:一款免费开源的轻量级数据库管理工具
数据库·sql