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

【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.mzph.cn/news/66440.shtml

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

相关文章

华为云 sfs 服务浅谈

以root用户登录弹性云服务器。 以root用户登录弹性云服务器。 安装NFS客户端。 查看系统是否安装NFS软件包。 CentOS、Red Hat、Oracle Enterprise Linux、SUSE、Euler OS、Fedora或OpenSUSE系统下,执行如下命令: rpm -qa|grep nfs Debian或Ubuntu系统下…

设计模式—观察者模式(Observer)

目录 思维导图 一、什么是观察者模式? 二、有什么优点吗? 三、有什么缺点吗? 四、什么时候使用观察者模式? 五、代码展示 ①、双向耦合的代码 ②、解耦实践一 ③、解耦实践二 ④、观察者模式 六、这个模式涉及到了哪些…

开发一个npm包

1 注册一个npm账号 npm https://www.npmjs.com/ 2 初始化一个npm 项目 npm init -y3编写一段代码 function fn(){return 12 }exports.hellofn;4发布到全局node_module npm install . -g5测试代码 创建一个text文件 npm link heath_apisnode index.js6登录(我默认的 https…

docker,nvidia-docker安装

卸载先前的docker Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,请卸载它们: sudo apt-get remove docker docker-engine docker.io containerd runc使用 Docker 仓库进行安装 设置仓库 更新 apt 包索引 sudo…

基于单片机教室人数实时检测系统

一、系统方案 主程序中main函数主要是引脚的初始化,给单片机引脚初始化,初始化LCD1602,初始化红外对管,通过对LCD1602赋值,采集进入教室的人数,显示在LCD1602上面进出人数我们采用按键的形式,检…

opencv鼠标事件函数setMouseCallback()详解

文章目录 opencv鼠标事件函数setMouseCallback()详解1、鼠标事件函数:(1)鼠标事件函数原型:setMouseCallback(),此函数会在调用之后不断查询回调函数onMouse(),直到窗口销毁(2)回调函…

肖sir__linux详解__001

linux详解: 1、ifconfig 查看ip地址 2、6版本:防火墙的命令: service iptables status 查看防火墙状态 service iptables statrt 开启防火墙 service iptables stop 关闭防火墙 service iptables restart 重启防火墙状态 7版本: systemctl s…

考前冲刺上岸浙工商MBA的备考经验分享

2023年对于许多人来说都是不平凡的一年,历经三年的抗争,我们终于成功结束了疫情。而我也很幸运的被浙工商MBA项目录取,即将开始全新的学习生活。身为一名已在职工作6年的人,能够重回校园真是一种特别令人激动的体验。今天&#xf…

域内密码喷洒

在Kerberos阶段认证的AS-REQ阶段,请求包cname对应的值是用户名,当用户名存在时候,密码正确和错误两种情况下,AS-REP返回包不一样,所以可以利用这一点对域用户名进行密码喷洒攻击 域内密码喷洒工具 Kerbrute kerbrut…

【Redis】redis入门+java操作redis

目录 一、Redis入门 1.1 Redis简介 1.2 Redis下载与安装 1.2.1 下载 1.2.2 linux安装 1.2.3 windows安装 1.3 Redis服务启动与停止 1.3.1 linux启动、停止Redis服务 1.3.2 windows启动、停止Redis服务 1.4 修改Redis启动密码 1.4.1 Linux修改设置 1.4.2 windows设…

使用HTTPS模式建立高效爬虫IP服务器详细步骤

嘿,各位爬虫小伙伴们!想要自己建立一个高效的爬虫IP服务器吗?今天我就来分享一个简单而强大的解决方案——使用HTTPS模式建立工具!本文将为你提供详细的操作步骤和代码示例,让你快速上手,轻松建立自己的爬虫…

【力扣每日一题】2023.8.29 带因子的二叉树

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一些元素,让我们用这些元素连接形成特定的二叉树,每种元素可以使用任意次数,形成的二叉树要…

【云计算•云原生】5.云原生之初识DevOps

文章目录 1.DevOps背景2.DevOps概念3.DevOps工具链 1.DevOps背景 软件开发必须包含两个团队:开发团队和运维团队 开发团队负责开发项目,系统迭代更新运维团队负责项目测试以及部署上线,维持系统稳定运行 一个软件周期中是由这两个团队相互…

数据库备份

数据库备份,数据库为school,素材如下 1.创建student和score表 目录 数据库备份,数据库为school,素材如下 1.创建student和score表 2.为student表和score表增加记录 3.备份数据库school到/backup目录 4.备份MySQL数据库为带…

Windows10上使用llama-recipes(LoRA)来对llama-2-7b做fine-tune

刚刚在Windows10上搭建环境来对llama2做finetune,里面坑还是挺多的,这里把印象中的坑整理了一下以作备忘。 llama-recipes是meta的开源项目,Github地址为:GitHub - facebookresearch/llama-recipes: Examples and recipes for Ll…

Go几种读取配置文件的方式

比较有名的方案有 使用viper管理配置[1] 支持多种配置文件格式,包括 JSON,TOML,YAML,HECL,envfile,甚至还包括Java properties 支持为配置项设置默认值 可以通过命令行参数覆盖指定的配置项 支持参数别名 viper[2]按照这个优先级(从高到低&am…

UE4 显示遮挡物体

SceneDepth是你相机能够看见的物体的深度距离 CustomDepth是你相机包括看不见被遮挡的物体的深度距离 如果CustemDepth比SceneDepth的距离相等,那么就是没有被遮挡的物体,如果被遮挡那么就是CustemDepth比SceneDepth深度距离远,然后再做对应…

【业务功能篇91】微服务-springcloud-多线程-线程池执行顺序

一、线程的实现方式 1. 线程的实现方式 1.1 继承Thread class ThreadDemo01 extends Thread{Overridepublic void run() {System.out.println("当前线程:" Thread.currentThread().getName());} }1.2 实现Runnable接口 class ThreadDemo02 implements Runnable{…

Win7下设置“定时关机”的方法

【Win7下设置定时关机的方法】 ●【所有程序】→【附件】→【系统工具】→【任务计划程序】 ● 右键单击,选择【创建基本任务】,然后在【任务名称】中填自定义名称,如“定时关机” ● 之后,按照下面各图的提示进行“任务触发器”…

在Ubuntu上安装CUDA和cuDNN以及验证安装步骤

在Ubuntu上安装CUDA和cuDNN以及验证安装步骤 本教程详细介绍了如何在Ubuntu操作系统上安装CUDA(NVIDIA的并行计算平台)和cuDNN(深度神经网络库),以及如何验证安装是否成功。通过按照这些步骤操作,您将能够…