韩旭个人博客SpringBoot + Mybatis + Thymeleaf + MySQL
2021/7/8 19:06:27
本文主要是介绍韩旭个人博客SpringBoot + Mybatis + Thymeleaf + MySQL,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.1.1 问题的提出
高效率的完成博客博文内容的管理,开发一个具有高效率和有意义的博客文章管理系统。
1.1.2 本课题的意义
通过对自己日常学习过程种 学习课程、课程笔记、浏览记录、编写日记等相关内容进行分析,完成具有博文管理、分类管理、标签管理等相关功能的小型数据库管理应用系统。
1.2 开发环境与工具介绍
本系统采用Java SpringBoot开发框架
1.2.1 SpringBoot简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
1.2.2 博客博文管理系统研究状况
博客文章管理是各大自媒体工作者的主要日常管理工作之一,涉及到增删改查的诸多方面,随着博客风格的不断改革,尤其是公众号、微博 朋友圈 等交流平台的展开和深入,日常博客博文的管理工作及保存管理日趋繁重和复杂。迫切需要研制开发一款功能强大,操作简单,具有人性化的高效率的博客博文管理系统。。。。。。。。。
纵观目前国内研究现状,在安全性和信息更新化方面存在有一定的不足,。。。。
2 系统需求分析与设计
2.1 用户需求分析
2.1.1 用户需求
要求博主作为管理员登录系统后,能够在合理范围内对数据库中的数据进行操作。完成增删改查需求。
2.1.2 系统功能需求
1.游客:查询博文的信息;查询每一篇博文的内容;查询单一标签全部博文;查询所有某分类的博文信息;文章分页查询;文章留言创建。
2:管理员:增删改查博文信息;增删改查分类信息;增删改查标签信息;增删改查留言信息;修改密码。
2.1.3 系统性能需求
博客博文管理系统主要提供博文内容查询,方便展示全部的博客内容,游客可以通过该系统查阅与自己感兴趣的信息,查看留言、提交留言。管理员可以通过博客文章管理系统查阅博文信息,标签 分类信息,查看游客留言、审核留言、提交留言、留言的管理等相关操作。系统管理员可以实现以上的所有功能,还有对博客文章的添加、删除、修改、分类和标签的添加、删除、修改,数据库的备份、数据库的还原等相关操作。
2.1.4 数据分析
管理员信息:管理员id,账号,用户名,密码,昵称,状态;
博客信息:博客id, 博客标题, 博客连接,博客封面,博客介绍,博客分类id,博客分类名称,博客标签, 博客装谈,博客视图, 博客是否删除,创建时间,删除时间 ;
博文分类:分类id,分类名,分类图标,分类排序,分类是否被删除, 创建时间;
博文标签:博文id, 标签名,是否删除, 创建时间;
博文评论:评论id,博文id,留言这昵称,邮箱,网站网址,留言内容,创建时间,创建者ip地址,回复内容,回复创建时间,评论状态,是否被删除;
2.2 功能模块图及分模块功能描述
2.2.1 系统的功能模块图
2.2.2 游客模块简介
1、博客博文信息查询模块:
通过该模块,游客可以查询出某一篇博文的详细信息,
游客可以查询出博文列表进行分页展示,
游客可以针对指定博文进行搜索匹配,
游客可以根据时间或阅读人数进行排序。
2、博客标签查询模块:
同 博客博文信息查询模块。
3、博客分类查询模块:
同 博客博文信息查询模块。
2.2.3 管理员模块简介
1、博客博文添加模块:
通过该模块,管理员可以新增一篇博文,
查询博客标签和博客分类。
2、博客博文修改模块:
通过该模块,管理员可以修改博文信息,
删除博文信息。
2.3 数据库设计
2.3.1 系统E-R图
2.3.2 数据库逻辑结构设计
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for tb_admin_user -- ---------------------------- DROP TABLE IF EXISTS `tb_admin_user`; CREATE TABLE `tb_admin_user` ( `admin_user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id', `login_user_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '管理员登陆名称', `login_password` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '管理员登陆密码', `nick_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '管理员显示昵称', `locked` tinyint(4) NULL DEFAULT 0 COMMENT '是否锁定 0未锁定 1已锁定无法登陆', PRIMARY KEY (`admin_user_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Table structure for tb_blog -- ---------------------------- DROP TABLE IF EXISTS `tb_blog`; CREATE TABLE `tb_blog` ( `blog_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '博客表主键id', `blog_title` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '博客标题', `blog_sub_url` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '博客自定义路径url', `blog_cover_image` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '博客封面图', `blog_content` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '博客内容', `blog_category_id` int(11) NOT NULL COMMENT '博客分类id', `blog_category_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '博客分类(冗余字段)', `blog_tags` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '博客标签', `blog_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0-草稿 1-发布', `blog_views` bigint(20) NOT NULL DEFAULT 0 COMMENT '阅读量', `enable_comment` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0-允许评论 1-不允许评论', `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', `create_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '添加时间', `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', PRIMARY KEY (`blog_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Table structure for tb_blog_category -- ---------------------------- DROP TABLE IF EXISTS `tb_blog_category`; CREATE TABLE `tb_blog_category` ( `category_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '分类表主键', `category_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '分类的名称', `category_icon` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '分类的图标', `category_rank` int(11) NOT NULL DEFAULT 1 COMMENT '分类的排序值 被使用的越多数值越大', `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', `create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间', PRIMARY KEY (`category_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Table structure for tb_blog_comment -- ---------------------------- DROP TABLE IF EXISTS `tb_blog_comment`; CREATE TABLE `tb_blog_comment` ( `comment_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', `blog_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '关联的blog主键', `commentator` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '评论者名称', `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '评论人的邮箱', `website_url` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '网址', `comment_body` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '评论内容', `comment_create_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '评论提交时间', `commentator_ip` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '评论时的ip地址', `reply_body` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '回复内容', `reply_create_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '回复时间', `comment_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否审核通过 0-未审核 1-审核通过', `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '是否删除 0-未删除 1-已删除', PRIMARY KEY (`comment_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Table structure for tb_blog_tag -- ---------------------------- DROP TABLE IF EXISTS `tb_blog_tag`; CREATE TABLE `tb_blog_tag` ( `tag_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '标签表主键id', `tag_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '标签名称', `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', `create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间', PRIMARY KEY (`tag_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 47 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Table structure for tb_blog_tag_relation -- ---------------------------- DROP TABLE IF EXISTS `tb_blog_tag_relation`; CREATE TABLE `tb_blog_tag_relation` ( `relation_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '关系表id', `blog_id` bigint(20) NOT NULL COMMENT '博客id', `tag_id` int(11) NOT NULL COMMENT '标签id', `create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '添加时间', PRIMARY KEY (`relation_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 99 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Table structure for tb_link -- ---------------------------- DROP TABLE IF EXISTS `tb_link`; CREATE TABLE `tb_link` ( `link_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '友链表主键id', `link_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '友链类别 0-友链 1-推荐 2-个人网站', `link_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '网站名称', `link_url` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '网站链接', `link_description` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '网站描述', `link_rank` int(11) NOT NULL DEFAULT 0 COMMENT '用于列表排序', `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除 0-未删除 1-已删除', `create_time` datetime(0) NULL DEFAULT NULL COMMENT '添加时间', PRIMARY KEY (`link_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; SET FOREIGN_KEY_CHECKS = 1;
3 系统实施
3.1 建立数据库
创建数据库表的SQL语句
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for tb_admin_user -- ---------------------------- DROP TABLE IF EXISTS `tb_admin_user`; CREATE TABLE `tb_admin_user` ( `admin_user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id', `login_user_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '管理员登陆名称', `login_password` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '管理员登陆密码', `nick_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '管理员显示昵称', `locked` tinyint(4) NULL DEFAULT 0 COMMENT '是否锁定 0未锁定 1已锁定无法登陆', PRIMARY KEY (`admin_user_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Table structure for tb_blog -- ---------------------------- DROP TABLE IF EXISTS `tb_blog`; CREATE TABLE `tb_blog` ( `blog_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '博客表主键id', `blog_title` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '博客标题', `blog_sub_url` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '博客自定义路径url', `blog_cover_image` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '博客封面图', `blog_content` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '博客内容', `blog_category_id` int(11) NOT NULL COMMENT '博客分类id', `blog_category_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '博客分类(冗余字段)', `blog_tags` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '博客标签', `blog_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0-草稿 1-发布', `blog_views` bigint(20) NOT NULL DEFAULT 0 COMMENT '阅读量', `enable_comment` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0-允许评论 1-不允许评论', `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', `create_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '添加时间', `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', PRIMARY KEY (`blog_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Table structure for tb_blog_category -- ---------------------------- DROP TABLE IF EXISTS `tb_blog_category`; CREATE TABLE `tb_blog_category` ( `category_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '分类表主键', `category_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '分类的名称', `category_icon` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '分类的图标', `category_rank` int(11) NOT NULL DEFAULT 1 COMMENT '分类的排序值 被使用的越多数值越大', `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', `create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间', PRIMARY KEY (`category_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Table structure for tb_blog_comment -- ---------------------------- DROP TABLE IF EXISTS `tb_blog_comment`; CREATE TABLE `tb_blog_comment` ( `comment_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', `blog_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '关联的blog主键', `commentator` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '评论者名称', `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '评论人的邮箱', `website_url` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '网址', `comment_body` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '评论内容', `comment_create_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '评论提交时间', `commentator_ip` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '评论时的ip地址', `reply_body` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '回复内容', `reply_create_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '回复时间', `comment_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否审核通过 0-未审核 1-审核通过', `is_deleted` tinyint(4) NULL DEFAULT 0 COMMENT '是否删除 0-未删除 1-已删除', PRIMARY KEY (`comment_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Table structure for tb_blog_tag -- ---------------------------- DROP TABLE IF EXISTS `tb_blog_tag`; CREATE TABLE `tb_blog_tag` ( `tag_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '标签表主键id', `tag_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '标签名称', `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', `create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间', PRIMARY KEY (`tag_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 47 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Table structure for tb_blog_tag_relation -- ---------------------------- DROP TABLE IF EXISTS `tb_blog_tag_relation`; CREATE TABLE `tb_blog_tag_relation` ( `relation_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '关系表id', `blog_id` bigint(20) NOT NULL COMMENT '博客id', `tag_id` int(11) NOT NULL COMMENT '标签id', `create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '添加时间', PRIMARY KEY (`relation_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 99 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Table structure for tb_link -- ---------------------------- DROP TABLE IF EXISTS `tb_link`; CREATE TABLE `tb_link` ( `link_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '友链表主键id', `link_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '友链类别 0-友链 1-推荐 2-个人网站', `link_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '网站名称', `link_url` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '网站链接', `link_description` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '网站描述', `link_rank` int(11) NOT NULL DEFAULT 0 COMMENT '用于列表排序', `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除 0-未删除 1-已删除', `create_time` datetime(0) NULL DEFAULT NULL COMMENT '添加时间', PRIMARY KEY (`link_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; SET FOREIGN_KEY_CHECKS = 1;
3.2 数据库连接
3.3 主要模块实施
3.3.1 登录模块的开发
登陆界面设计:
3.3.2博客博文管理系统各界面
3.4 系统测试
3.4.1 软件测试的对象
利用不同的登录权限对博文表、标签表、分类表进行不同的增删改查操作。
3.4.2 软件测试的结果
游客模块:
游客模块界面:
管理员模块:
管理员模块界面:
这篇关于韩旭个人博客SpringBoot + Mybatis + Thymeleaf + MySQL的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27消息中间件底层原理资料详解
- 2024-11-27RocketMQ底层原理资料详解:新手入门教程
- 2024-11-27MQ底层原理资料详解:新手入门教程
- 2024-11-27MQ项目开发资料入门教程
- 2024-11-27RocketMQ源码资料详解:新手入门教程
- 2024-11-27本地多文件上传简易教程
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器