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

目录

涉及技术

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

相关推荐
徒 花1 小时前
数据库知识复习07
数据库·作业
枫叶落雨2222 小时前
ShardingSphere 介绍
java
素玥2 小时前
实训5 python连接mysql数据库
数据库·python·mysql
花花鱼2 小时前
Spring Security 与 Spring MVC
java·spring·mvc
jnrjian2 小时前
text index 查看index column index定义 index 刷新频率 index视图
数据库·oracle
瀚高PG实验室2 小时前
审计策略修改
网络·数据库·瀚高数据库
言慢行善3 小时前
sqlserver模糊查询问题
java·数据库·sqlserver
韶博雅3 小时前
emcc24ai
开发语言·数据库·python
专吃海绵宝宝菠萝屋的派大星3 小时前
使用Dify对接自己开发的mcp
java·服务器·前端