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

目录

涉及技术

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

相关推荐
行者全栈架构师13 小时前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_013 小时前
mac(m5)平台编译openjdk
java
倔强的石头_1 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
唐青枫1 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马2 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261352 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261352 天前
Java 打印 Word 文档:从基础打印到高级设置
java
冬奇Lab2 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
用户3521802454752 天前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程
东坡白菜2 天前
破局全栈:一个前端开发的Java入门实战记录(1)
java·全栈