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

news2024/11/27 20:34:31

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

在这里插入图片描述

文章目录

  • 【JavaEE】进阶 · 个人博客系统(1)
    • 1. 使用Spring全家桶 + MyBatis框架进行开发
    • 2. 页面
      • 2.1 登录页
      • 2.2 注册页
      • 2.3 详情页
      • 2.4 我的博客列表页
      • 3.5 所有人的博客列表页
      • 3.6 添加博客页
      • 3.7 修改文章页
    • 3. 将静态资源部署到项目里
    • 4. 数据库设计
      • 4.1 userinfo表
      • 4.2 articleinfo表
    • 5. 创建实体类
      • 5.1 model.UserInfo类
      • 5.2 model.ArticleInfo类
      • 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. 更新时间,即提交时的时间

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

  • 个人博客系统静态页面 · 游离态/马拉圈2023年9月 - 码云 - 开源中国 (gitee.com)

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

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

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

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

在这里插入图片描述

4. 数据库设计

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

一个数据库:

  • myblog_system
-- 创建数据库
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 状态(预留字段)
-- 创建表[用户表]
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 状态(预留字段)
-- 创建文章表
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类

@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类

@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

@Data
public class UserInfoVO extends UserInfo {
    
}
@Data
public class ArticleInfoVO extends ArticleInfo {

}

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

  • 到时候遇到再说

在这里插入图片描述


文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/968652.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Snipaste_2023-08-22_16-09-41.jpg

原因 cd 目录名 (想要补全的时候出现以下错误) cd /o-bash: cannot create temp file for here-document: No space left on device解决方案 可以使用df -h命令查看磁盘空间的使用情况,删除一些不必要的文件或调整其他文件的存储位置来释放空间,或者还可以考虑扩大磁盘容量 df …

【java基础面试题】jdk、jre、jvm区别

【java基础面试题】jdk、jre、jvm区别 jdk ​ 从概念上讲JDK是JAVA开发工具,用它来开发JAVA程序,里面有很多基础类库和jre。 ​ JDK(Java Development Kit),它是功能齐全的 Java SDK,是提供给开发者使用的&#xff…

[Linux]文件描述符(万字详解)

[Linux]文件描述符 文章目录 [Linux]文件描述符文件系统接口open函数close函数write函数read函数系统接口与编程语言库函数的关系 文件描述符文件描述符的概念文件数据交换的原理理解“一切皆文件”进程默认文件描述符文件描述符和编程语言的关系 重定向输出重定向输入重定向追…

RK3568 USB支持接口类型

一.简介 RK356x 总共支持 4 个 USB 外设接口,包括 1 个OTG 接口,1 个 USB 3.0 Host 接口,以及 2 个 USB 2.0 Host 接口。 二.常用接口类型介绍 Type-C 接口类型: Type-A 接口类型: Type-A USB 3.1 接口:…

el-tree组件的锚点链接

el-tree部分&#xff1a; <el-tree:default-expand-all"true":data"anchorList":props"defaultProps"node-click"handleNodeClick"/> 组件内部部分&#xff1a; <div class"header" :id"content obj.id&q…

javaweb入门版学生信息管理系统-增删改查+JSP+Jstl+El

dao public class StudentDao {QueryRunner queryRunner QueryRunnerUtils.getQueryRunner();//查询全部学生信息public List<Student> selectStudent(){String sql "select * from tb_student";List<Student> students null;try {students queryRunn…

机器学习笔记之最优化理论与方法(五)凸优化问题(上)

机器学习笔记之最优化理论与方法——凸优化问题[上] 引言凸优化问题的基本定义凸优化定义&#xff1a;示例 凸优化与非凸优化问题的区分局部最优解即全局最优解凸优化问题的最优性条件几种特殊凸问题的最优性条件无约束凸优化等式约束凸优化非负约束凸优化 引言 本节将介绍凸优…

Swift 技术 视频播放器滚动条(源码)

一直觉得自己写的不是技术&#xff0c;而是情怀&#xff0c;一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的&#xff0c;希望我的这条路能让你们少走弯路&#xff0c;希望我能帮你们抹去知识的蒙尘&#xff0c;希望我能帮你们理清知识的脉络&#xff0…

数学建模--非多项式拟合法的Python实现

目录 1.算法异同区别 2.算法核心步骤 3.算法核心代码 4.算法效果展示 1.算法异同区别 #*************************************************************************************************************# 方法区别探究 1.对于多项式拟合你需要大致知道这些点的分布&#xf…

对Excel表中归类的文件夹进行自动分类

首先把excel表另存为.txt文件&#xff08;注意&#xff1a;刚开始可能是ANSI格式&#xff0c;需要转成UTF-8格式&#xff09;&#xff1b;再新建一个.txt文件&#xff0c;重命名成.bat文件(注意&#xff1a;直接创建的如果是是UTF-8格式&#xff0c;最好转成ANSI格式&#xff0…

WEBGL(5):绘制线

1 实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, …

零基础教程:使用yolov8训练自己的目标检测数据集

1.前言 Ultralytics YOLOv8 是一款前沿、最先进&#xff08;SOTA&#xff09;的模型&#xff0c;基于先前 YOLO 版本的成功&#xff0c;引入了新功能和改进&#xff0c;进一步提升性能和灵活性。YOLOv8 设计快速、准确且易于使用&#xff0c;使其成为各种物体检测与跟踪、实例…

1782_Adobe Reader X实现pdf分页保存

全部学习汇总&#xff1a; GitHub - GreyZhang/windows_skills: some skills when using windows system. 看了一本pdf电子书&#xff0c;觉得其中几页很值得分享。如果分享整本书当然是不错的选择&#xff0c;但是分享整本书很可能会导致一个结局——内容太多别人不会去看&…

rz命令无法正常使用?

使用rz命令上传文件时出现如下问题&#xff1a; 这里用的是mobaxterm终端 改用xshell,secureCRT即可正常使用&#xff1a;

Ubutnu允许ssh连接使用root与密码登录

文章目录 1. 修改sshd_config2. 设置root密码3. 重启SSH服务 1. 修改sshd_config 修改/etc/ssh/sshd_config文件&#xff0c;找到 #Authentication&#xff0c;将 PermitRootLogin 参数修改为 yes。如果 PermitRootLogin 参数被注释&#xff0c;请去掉首行的注释符号&#xff…

人大金仓国产数据库在线下载体验测试版本安装方法

在线下载人大金仓数据库体验测试版本方法 下载地址如下&#xff1a; https://www.kingbase.com.cn/rjcxxz/index.htm #下载windows版本地址参考 https://blog.csdn.net/qq_57052445/article/details/130427207https://www.kingbase.com.cn/sqwjxz/index.htm此处需要下载获取…

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书山东师范大学图书馆

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书山东师范大学图书馆

openGauss学习笔记-59 openGauss 数据库管理-相关概念介绍

文章目录 openGauss学习笔记-59 openGauss 数据库管理-相关概念介绍59.1 数据库59.2 表空间59.3 模式59.4 用户和角色59.5 事务管理 openGauss学习笔记-59 openGauss 数据库管理-相关概念介绍 59.1 数据库 数据库用于管理各类数据对象&#xff0c;与其他数据库隔离。创建数据…

1781_通用型归并排序函数的C语言实现

全部学习汇总&#xff1a; GitHub - GreyZhang/c_basic: little bits of c. 近期在学习C语言数据结构&#xff0c;看到了排序。我看得是一本国外的书籍&#xff0c;直接网上寻找到的一个英文版。内容比较简洁&#xff0c;讲解也算是调理清晰。 关于排序算法&#xff0c;书中只…

DT vray(焦散 间接照明 图像照明)

折射属性 焦散 材质覆盖 基于图像的照明 双面材质 间接照明 开启GI 光子映射 边上 Irradiance Maps 渲染平滑几何体