在线体验 : http://43.139.1.94:8080/login.html

项目 Gitee 链接 : 博客系统 - SSM

1.SSM 版本的博客系统相较于 Servlet 版本的升级

1. 框架升级 : SSM (SpringBoot + Spring MVC + MyBatis) + MySQL + Redis + jQuery.
2. 密码升级: 明文存储/md5存储 -> 加盐处理.
3. 用户登录状态持久化升级: session 持久化到内存 - > session 持久化到 Redis. (后期有空实现)
4. 功能升级: 增加了分页功能.
5. 使用拦截器升级用户登录验证.

2. 准备工作

2.1 准备数据库

-- 创建数据库
drop database if exists mycnblog;
create database mycnblog DEFAULT CHARACTER SET utf8mb4;-- 使用数据数据
use mycnblog;-- 创建表[用户表]
drop table if exists  userinfo;
create table userinfo(id int primary key auto_increment,username varchar(100) unique, -- 唯一约束password varchar(64) not null,photo varchar(500) default '',createtime timestamp default CURRENT_TIMESTAMP,`state` int default 1
) default charset 'utf8mb4';-- 创建文章表
drop table if exists  articleinfo;
create table articleinfo(id int primary key auto_increment,title varchar(100) not null,content text not null,createtime timestamp default CURRENT_TIMESTAMP,uid int not null,rcount int not null default 1,`state` int default 1
)default charset 'utf8mb4';

总共两张表: 文章表, 用户表

文章表

用户表

2.2 创建一个SSM 项目

具体流程在这篇博客中有详细介绍: SpringBoot 项目的创建和使用 (开发环境: IDEA, JDK 1.8)

在 SpringBoot 项目的基础上添加 2 个依赖即可:

2.3 准备项目的配置文件

在 static 文件下创建一个 application.yml 的文件, 并根据自己的数据库信息和mapper 文件夹的命名将以下 xml 文件配置到 application.yml 文件中.

# 配置数据库的连接字符串
spring:datasource:url: jdbc:mysql://localhost:3306/mycnblog?characterEncoding=utf8&useSSL=falseusername: rootpassword: 316772driver-class-name: com.mysql.jdbc.Driver
# 设置 Mybatis 的 xml 保存路径
mybatis:mapper-locations: classpath:mapper/**Mapper.xmlconfiguration: # 配置打印 MyBatis 执行的 SQLlog-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 配置打印 MyBatis 执行的 SQL
logging:level:com:example:demo: debug

准备好 yml 配置文件后, 根据里面的mapper-locations 中的约定创建一个叫做 mapper 的文件夹, 并在文件夹下创建两个以 Mapper.xml 为后缀名的文件.

并分别在 xml 中添加必须代码:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.ArticleMapper"></mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper"></mapper>

2.4 准备项目中的公共模块

1. 实体层 (model) - 实体类
2. 控制器层 (controller) -> 控制器
3. 服务层 (service) -> 服务类
4. 持久层 (mapper) -> mapper
5. 工具层 (common) -> 统一返回类

2.4.1 实体层 (model) - 实体类

@Data
public class ArticleInfo {private int id;private String title;private String content;private String createtime; // 发布时间private int uid; // 文章对应的作者private int rcount; // 阅读量private int state;
}
@Data
public class UserInfo {private int id;private String username;private String password;private String photo;private String createtime;private int state;
}

2.4.2 控制器层 (controller) -> 控制器

@RestController
@RequestMapping("/art")
public class ArticleController {@Autowiredprivate ArticleService articleService;
}
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;
}

2.4.3 服务层 (service) -> 服务类

@Service
public class ArticleService {@Autowiredprivate ArticleMapper articleMapper;
}
@Service
public class UserService {@Autowiredprivate UserMapper userMapper;
}

2.4.4 持久层 (mapper) -> mapper

@Mapper
public interface ArticleMapper {
}
@Mapper
public interface UserMapper {
}

2.5.5 工具层 (common) -> 统一返回类

此处对统一功能的处理不熟悉的可以先从这篇博客中学习 - Spring AOP 统一功能的处理

SSM项目 - 博客系统相关推荐

  1. 从零开始开发SSM项目-博客系统实战

    一.项目包含功能 使用SSM框架开发一个博客系统,包含的功能大致有: 1.用户注册与激活,激活方式通过邮件激活 2.用户的登录和退出,包括账号登录.手机快捷登录和qq第三方登录 3.用户账号登录和注册 ...

  2. (附源码)计算机毕业设计ssm基于博客系统的UI手机界面展示

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  3. JavaWeb项目——博客系统

    系统介绍 博客是互联网平台上的个人信息交流中心.通常博客就是用来发表文章,所有的文章都是按照年份和日期排列,有些类似斑竹的日记.看上去平淡无奇,毫无可炫耀之处,但它可以让每个人零成本.零维护地创建自己 ...

  4. 前端页面项目——博客系统

    目录 1.实现博客列表页 1.1 实现导航栏 1.2 实现中间版心 1.3 实现个人信息 1.4 实现博客列表 2. 实现博客正文页 3. 实现博客登陆页 4. 实现博客编辑 4.1 实现编辑区 4. ...

  5. 前端项目 - 博客系统(纯页面)

    预览效果 1. 实现博客列表页 导航栏 common.css blog_list.html blog_list.css 2. 实现博客正文页 blog_detail.html blog_detail. ...

  6. JavaWeb 项目 --- 博客系统(基于模板引擎)

    文章目录 1. 创建 maven 项目 2. 设计数据库 3. 封装数据库的操作代码 3.1 创建 DBUtil 类 3.2 创建类 Blog (代表一篇博客) 3.3 创建类 User (代表一个用 ...

  7. JavaWeb 项目 --- 博客系统(前后分离)

    文章目录 效果展示 1. 创建 maven 项目 2. 设计数据库 3. 封装数据库的操作代码 3.1 创建 DBUtil 类 3.2 创建类 Blog (代表一篇博客) 3.3 创建类 User ( ...

  8. 基于jsp、ssm新闻博客系统

    开发工具:eclipse,jdk1.8 服务器:tomcat8.0 数据库:mysql5.7 项目基本介绍: 系统分前台和后台两部分 前台:首页.轮播图.最新发布.友情链接.广告位.统计信息.站内搜索 ...

  9. Java项目——博客系统(毕业设计)

    文末获取资源 文章目录 主页 注册模块 个人中心模块 发布文章模块 推荐模块 评论模块 点赞模块 通知模块 主页 主页是用户打开的第一个页面,是到达各个模块的入口,友好的一个界面可以给用户一个好的印象 ...

最新文章

  1. 几个非常低调的公众号!但副业月入早已过3万...
  2. vue中引入jquery报错问题
  3. 首次登录kk服务器信息,kk云服务器设置
  4. pythonos模块介绍_Python os模块介绍
  5. C#实现让程序只能打开一个实例(总结3方法)
  6. ES6-16 WeakMap与WeakSet、proxy与reflect
  7. C#中FuncT,TResult的用法和Lambda表达式
  8. CentOS 安装最新版本 Git
  9. python 的csr_python - 以便携式数据形式保存/加载scipy稀疏csr_matrix
  10. esxi 需要整合 空间不足_太炫酷了!10月微信新花样!微信情侣空间怎么设置如何弄微信情侣空间在哪里开...
  11. 中兴通讯携MF30打造高速无线网络
  12. 如何将App程序发布到苹果App Store
  13. C语言基础——求1加到100的和
  14. gazebo可以另存为world
  15. AI实战:垂直领域问答机器人QA Bot常见技术架构
  16. 计算机术语tops,第十七课计算机辅助包装系统TOPSPro简介TOPSPro包装优化软件.DOC...
  17. python kivy显示图片_Kivy 图形界面开发初体验
  18. Metasploit---情报收集---被动情报收集
  19. 威盾IIS防火墙升级到V3.7
  20. android 6.0 开机自启管理,Android App 如何做到开机自启动

热门文章

  1. comsol学习中心:网格划分基础操作
  2. 微信登录/第三方登录
  3. 【实例】php打印星星金字塔
  4. Centos 搭建Git私有服务器
  5. android 时间间隔 calendar,android:在某些特定时间间隔内报警remian停止
  6. 【Liunx】进程的程序替换——自定义编写极简版shell
  7. alv布局 sap_SAP ALV简单使用
  8. 追梦算法----P1072. 排队打水
  9. AP近邻传播聚类算法(Affinity Propagation)
  10. 菲涅尔定理及MATLAB实现