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

目录

涉及技术

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

相关推荐
我命由我123454 小时前
Android Studio - Android Studio 自定义预览尺寸
android·java·ide·java-ee·android studio·android-studio·android runtime
咖啡八杯5 小时前
GoF设计模式——迭代器模式
java·后端·设计模式·迭代器模式
AIGS0016 小时前
企业AI落地的关键认知:向量空间JBoltAI的本体语义平台
java·人工智能·人工智能ai大模型应用
KaMeidebaby7 小时前
卡梅德生物技术快报|抗体亲和力成熟工业化调控新机制:差异性浆细胞增殖工艺优化思路
java·开发语言·人工智能·算法·机器学习·架构·spark
小二·7 小时前
RAG + 向量数据库实战:ChromaDB / Milvus / FAISS 选型与性能横评
数据库·milvus·faiss
矜持的左手7 小时前
电子小白的枕边书:电子学(The Art of Electronics)
数据库·restful
吴声子夜歌7 小时前
Redis 5.x——布隆过滤器
数据库·redis·缓存
蓝天下的守望者8 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
醉城夜风~8 小时前
Java详解经典算法题:接雨水(三种实现方案+原理剖析)
java·开发语言·算法