【个人博客系统网站】框架升级 · 工程目录 · 数据库设计

【JavaEE】进阶 · 个人博客系统(1)

文章目录

  • [【JavaEE】进阶 · 个人博客系统(1)](#【JavaEE】进阶 · 个人博客系统(1))
    • [1. 使用Spring全家桶 + MyBatis框架进行开发](#1. 使用Spring全家桶 + MyBatis框架进行开发)
    • [2. 页面](#2. 页面)
      • [2.1 登录页](#2.1 登录页)
      • [2.2 注册页](#2.2 注册页)
      • [2.3 详情页](#2.3 详情页)
      • [2.4 我的博客列表页](#2.4 我的博客列表页)
      • [3.5 所有人的博客列表页](#3.5 所有人的博客列表页)
      • [3.6 添加博客页](#3.6 添加博客页)
      • [3.7 修改文章页](#3.7 修改文章页)
    • [3. 将静态资源部署到项目里](#3. 将静态资源部署到项目里)
    • [4. 数据库设计](#4. 数据库设计)
      • [4.1 userinfo表](#4.1 userinfo表)
      • [4.2 articleinfo表](#4.2 articleinfo表)
    • [5. 创建实体类](#5. 创建实体类)
      • [5.1 model.UserInfo类](#5.1 model.UserInfo类)
      • [5.2 model.ArticleInfo类](#5.2 model.ArticleInfo类)
      • [5.3 扩展类UserInfoVO与ArticleInfoVO](#5.3 扩展类UserInfoVO与ArticleInfoVO)

【JavaEE】进阶 · 个人博客系统(1)

1. 使用Spring全家桶 + MyBatis框架进行开发

标准项目目录:

  1. controller,前后端交互控制器,接受请求,[处理请求],调用service,将响应返回给前端
  2. service,调用数据持久层mapper层
  3. mapper,进行数据库操作
  4. model,实体类
  5. common ,公共类,Utils工具类
    • utils是"utilities"的缩写,即工具、实用程序或实用工具的意思
  6. config,配置类
  7. component,组件

2. 页面

旧版本博客系统:

  1. 【JavaEE】前后端综合项目-博客系统(下)_s:103的博客-CSDN博客
  2. 【JavaEE】前后端综合项目-博客系统(下)_s:103的博客-CSDN博客

而进阶版的博客系统有以下几个页面,并总结需要用到的数据:

2.1 登录页

用户信息:

  1. 用户名
  2. 密码
  3. 头像

2.2 注册页

用户信息:

  1. 昵称

  2. 代码仓库链接

  3. 密码

  4. 头像

  5. 自动生成的用户名和id

2.3 详情页

用户信息:

  1. 博文作者id
  2. 代码仓库链接
  3. 文章总数

博文信息:

  1. 作者id
  2. 文章id
  3. 标题
  4. 时间
  5. 正文
  6. 阅读量

2.4 我的博客列表页

用户信息:

  1. 博文作者id
  2. 代码仓库链接
  3. 文章总数

博文信息:

  1. 标题
  2. 时间
  3. 摘要

3.5 所有人的博客列表页

博文信息:

  1. 作者id
  2. 文章id
  3. 作者头像
  4. 标题
  5. 时间
  6. 摘要

3.6 添加博客页

用户信息:

  1. 用户id

博文信息:

  1. 作者id,即当前用户id
  2. 标题
  3. 正文
  4. 创建时间,即提交时的时间
  5. 自动生成的文章id

3.7 修改文章页

用户信息:

  1. 用户id

博文信息:

  1. 文章id
  2. 作者id,即当前用户id
  3. 标题
  4. 正文
  5. 更新时间,即提交时的时间

前端代码链接(不带前后端交互代码的):

新增页面的实现,项目功能升级,项目的亮点,我们会渗透一个页面一个页面的实现讲解中提到,最终进行总结!

  • 前端画面显示以及代码逻辑,后续根据相应的功能和逻辑进行调整以及补充即可
  • 甚至可能进行较大的修改!
  • 不过不需要纠结太多前端的东西~

3. 将静态资源部署到项目里

静态资源都是部署到resource的static目录里的:

4. 数据库设计

根据第2点的分析,总结出

一个数据库:

  • myblog_system
sql 复制代码
-- 创建数据库
drop database if exists myblog_system;
create database myblog_system charset=utf8;

-- 使用数据数据
use myblog_system;

配置文件修改:

两张表:

  1. userinfo 用户表
  2. articleinfo 博文表

4.1 userinfo表

  1. id,用户id
  2. username,用户名
  3. name, 昵称
  4. password,密码
  5. photo,头像
  6. git,代码仓库链接
  7. createtime,创建时间
  8. updatetime,更新时间
  9. state 状态(预留字段)
sql 复制代码
-- 创建表[用户表]
drop table if exists  userinfo;
create table userinfo(
    id int primary key auto_increment,
    username varchar(15) not null unique,
    name varchar(100) not null,
    password varchar(65) not null,
    photo varchar(500) default '',
    git varchar(500) default '',
    createtime timestamp default current_timestamp,
    updatetime timestamp default current_timestamp,
    `state` int default 1
);

4.2 articleinfo表

  1. id,文章id
  2. title,标题
  3. content,正文
  4. summary,摘要
  5. createtime,创建时间
  6. updatetime,更新时间
  7. uid,作者id
  8. photo,作者头像
  9. rcount,阅读量
  10. state 状态(预留字段)
sql 复制代码
-- 创建文章表
drop table if exists  articleinfo;
create table articleinfo(
    id int primary key auto_increment,
    title varchar(100) not null,
    content text not null,
    summary text not null,
    createtime timestamp default current_timestamp,
    updatetime timestamp default current_timestamp,
    uid int not null,
    photo varchar(500) default '',
    rcount int not null default 1,
    `state` int default 1
);

建议将sql语句先在sql文件中编写:

将SQL语句复制粘贴到mysql:

5. 创建实体类

5.1 model.UserInfo类

java 复制代码
@Data
public class UserInfo {
    private int id;
    private String username;
    private String name;
    private String password;
    private String photo;
    private String git;
    private LocalDateTime createtime;
    private LocalDateTime updatetime;
    private int state;
}

5.2 model.ArticleInfo类

java 复制代码
@Data
public class ArticleInfo {
    private int id;
    private String title;
    private String content;
    private String summary;
    private LocalDateTime createtime;
    private LocalDateTime updatetime;
    private int uid;
    private String photo;
    private int rcount;
    private int state;
}

5.3 扩展类UserInfoVO与ArticleInfoVO

java 复制代码
@Data
public class UserInfoVO extends UserInfo {
    
}
java 复制代码
@Data
public class ArticleInfoVO extends ArticleInfo {

}

对于一些特殊情况,特殊处理,可以在这里面增加属性,不是增加在原类里,因为数据库的表并没有变化,只不过这个对象要附带一些东西~

  • 到时候遇到再说

文章到此结束!谢谢观看

可以叫我 小马 ,我可能写的不好或者有错误,但是一起加油鸭🦆

代码:myblog_system · 游离态/马拉圈2023年9月 - 码云 - 开源中国 (gitee.com)


相关推荐
2301_765703146 分钟前
C++中的协程编程
开发语言·c++·算法
m0_748708058 分钟前
实时数据压缩库
开发语言·c++·算法
瀚高PG实验室20 分钟前
通过数据库日志获取数据库中的慢SQL
数据库·sql·瀚高数据库
Hgfdsaqwr29 分钟前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
云小逸36 分钟前
【网络通信】同一网段与不同网段的通信原理
网络·网络安全
invicinble37 分钟前
对于Mysql深入理解
数据库·mysql
lly2024061 小时前
jQuery Mobile 表格
开发语言
惊讶的猫1 小时前
探究StringBuilder和StringBuffer的线程安全问题
java·开发语言
jmxwzy1 小时前
Spring全家桶
java·spring·rpc
Halo_tjn1 小时前
基于封装的专项 知识点
java·前端·python·算法