派大星的小站

news/2024/11/25 12:36:14/

将之前写的博客项目改为SSM项目

文章目录

  • 1.创建项目
  • 2.数据库实现及管理
    • 2.1使用MaBatis操作数据库
      • 2.1.1 UserMapper.xml
      • 2.1.2 BlogMapper.xml
    • 2.2 实体类
      • 2.2.1 Blog类
      • 2.2.2 User类
    • 2.3 接口类
      • 2.3.1 BlogMapper
      • 2.3.2 UserMapper
    • 2.4 调用类
      • 2.4.1 BlogService
      • 2.4.2 UserService
  • 3. 前后端约定
  • 4. 导入前端代码
  • 5. 编写后端代码
    • 5.1 实现返回类
    • 5.2 实现博客主页和详情页
    • 5.3 实现登录页
  • 5.4 实现登录判断-拦截器
    • 5.4.1 实现自定义拦截器
    • 5.4.2 将自定义拦截器加入到系统配置中
    • 5.4.3 登录判断
  • 5.5 获取博客作者信息
  • 5.6 发布博客
  • 5.7 注销
  • 5.8 删除博客
  • 5.9 注册
  • 6. 部署到云服务器
    • 6.1打包
    • 6.2 找到该包
    • 6.3 拖拽发送
    • 6.4 运行

1.创建项目

创建一个SpringBoot项目,添加如下依赖:
在这里插入图片描述

2.数据库实现及管理

数据库使用之前的即可.
在这里插入图片描述

2.1使用MaBatis操作数据库

2.1.1 UserMapper.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.model.UserMapper"><insert id="insert">insert into user(username,password) values(#{username},#{password});</insert><select id="selectById" resultType="com.example.demo.model.User">select * from user where userId = #{userId}</select><select id="selectByName" resultType="com.example.demo.model.User">select * from user where username = #{username}</select></mapper>

2.1.2 BlogMapper.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.model.BlogMapper"><!-- 发布一篇博客 --><insert id="insert">insert into blog values(null,#{title},#{blog_content},#{userId},now())</insert><!-- 根据博客id查找博客 --><select id="selectByBlogId" resultType="com.example.demo.model.Blog">select * from blog where blogId = #{blogId}</select><!-- 根据用户id查找该用户所有博客 --><select id="selectByUserId" resultType="com.example.demo.model.Blog">select * from blog where userId = #{userId}</select><!-- 查询所有博客 --><select id="selectAll" resultType="com.example.demo.model.Blog">select * from blog order by postTime desc</select><!-- 根据博客id删除博客 --><delete id="deleteByBlogId">delete from blog where blogId = #{blogId}</delete>
</mapper>

2.2 实体类

2.2.1 Blog类

@Data
public class Blog {private int blogId;private String title;private String blog_content;private int userId;private Timestamp postTime;public String getPostTime() {SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");return simpleDateFormat.format(postTime);}
}

2.2.2 User类

@Data
public class User {private int userId = 0;private String username = "";private String password = "";
}

2.3 接口类

2.3.1 BlogMapper

@Mapper
public interface BlogMapper {int deleteByBlogId(Integer blogId);Blog selectByBlogId(Integer blogId);List<Blog> selectByUserId(Integer userId);int insert(Blog blog);List<Blog> selectAll();
}

2.3.2 UserMapper

@Mapper
public interface BlogMapper {int deleteByBlogId(Integer blogId);Blog selectByBlogId(Integer blogId);List<Blog> selectByUserId(Integer userId);int insert(Blog blog);List<Blog> selectAll();
}

2.4 调用类

2.4.1 BlogService

@Service
public class BlogService {@Resourceprivate BlogMapper blogMapper;public int insert(Blog blog){return blogMapper.insert(blog);}public List<Blog> selectByUserId(Integer userId){return blogMapper.selectByUserId(userId);}public Blog selectByBlogId(Integer BlogId){return blogMapper.selectByBlogId(BlogId);}public void deleteByBlogId(Integer BlogId){blogMapper.deleteByBlogId(BlogId);}public List<Blog> selectAll(){return blogMapper.selectAll();}
}

2.4.2 UserService

@Service
public class UserService {@Resourceprivate UserMapper userMapper;public User selectById(Integer id){return userMapper.selectById(id);}public int insert(User user){return userMapper.insert(user);}public User selectByName(String username){return userMapper.selectByName(username);}
}

3. 前后端约定

1
在这里插入图片描述2

在这里插入图片描述3

在这里插入图片描述
4
在这里插入图片描述
5
在这里插入图片描述6
在这里插入图片描述
7
在这里插入图片描述
8
在这里插入图片描述

4. 导入前端代码

前端代码基本不用修改,直接引入即可

5. 编写后端代码

5.1 实现返回类

在这里插入图片描述

5.2 实现博客主页和详情页

和原来一样,我们依旧可以通过判断是否有拥有参数来实现跳转到博客主页还是详情页

在这里插入图片描述在这里插入图片描述在这里插入图片描述
具体的可参考之前的博客: 博客系统

5.3 实现登录页

在这里插入图片描述
在这里插入图片描述

5.4 实现登录判断-拦截器

5.4.1 实现自定义拦截器

public class LoginIntercept implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {HttpSession session = request.getSession(false);if(session != null && session.getAttribute("user") != null){return true;}response.setStatus(401);response.sendRedirect("/login.html");return false;}
}

5.4.2 将自定义拦截器加入到系统配置中

@Configuration
public class APPConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LoginIntercept()).//所有路由都拦截addPathPatterns("/**").//不拦截这个后缀的所有文件excludePathPatterns("/**/*.css").excludePathPatterns("/**/*.js").excludePathPatterns("/**/*.png").excludePathPatterns("/**/*.jpg").//登录页和注册页也不用拦截excludePathPatterns("/**/login.html").excludePathPatterns("/**/register.html").excludePathPatterns("/**/login").excludePathPatterns("/**/register");}
}

5.4.3 登录判断

在这里插入图片描述在这里插入图片描述

5.5 获取博客作者信息

在这里插入图片描述
在这里插入图片描述

5.6 发布博客

在这里插入图片描述在这里插入图片描述

5.7 注销

在这里插入图片描述

5.8 删除博客

在这里插入图片描述
在这里插入图片描述

5.9 注册

在这里插入图片描述
在这里插入图片描述

6. 部署到云服务器

6.1打包

在这里插入图片描述

6.2 找到该包

在这里插入图片描述

6.3 拖拽发送

在这里插入图片描述

6.4 运行

java - jar 加包名即可运行
在这里插入图片描述


http://www.ppmy.cn/news/353575.html

相关文章

《祝星》

我最喜欢的一名民谣歌手&#xff0c;叫陈粒。 她曾经有个女朋友&#xff0c;名字叫祝星。 那一年&#xff0c;陈粒就读于上海经贸大学&#xff0c;一个与音乐无关的专业&#xff0c;凭着自己对音乐的执着热爱&#xff0c;组建了乐队&#xff0c;并一举获得 “Zippo炙热摇滚大…

200颗卫星!武大“东方慧眼”星座项目发布

本文转自武汉大学官微 4月24日&#xff0c;是“中国航天日”&#xff0c;“东方慧眼”智能遥感星座项目在武汉大学宣布正式启动。 针对当前我国卫星遥感存在“成本高、效率低、不稳定、应用少”等诸多问题&#xff0c;“东方慧眼”智能遥感卫星星座计划通过卫星星座组网观测、…

天星直播|TSTV

天星直播&#xff1a; http://www.wogaoav.tk http://www.jkav.tk http://www.jmbb.tk http://hyruur1.1000space.com http://www.tvb168.tk 天星论坛&#xff1a; http://www.kugz.co.cc 天星娱乐&#xff1a; http://www.tvb168.co.cc

星の子 / 星之子

目录 基本资料面板值&#xff08;无天冥加成&#xff09;天冥奖励 战斗宣言&#xff08;VC&#xff09;技能珠子 回到人物索引 基本资料 NS(5★)协奏4支线任务入队 (Ver 2.13.10) 天冥属性武器防具属性耐性异常耐性NS天晶杖戒指全属性30%10%个性杖、时之伤痕的圆舞升天冥副本…

Planet星座的卫星简介

Planet公司是世界上在轨卫星最多的公司&#xff0c;拥有全球最大的卫星星座。截止到2018年8月&#xff0c;其公司拥有175个Doves卫星&#xff0c;13个SkySat卫星和5个RapidEye卫星&#xff0c;可以实现全球图像每一天的更新。 参数介绍&#xff1a; Doves卫星是planet卫星星座…

Python面试必知100题【6~10题】

Python面试必知100例。收集整理了目前Python岗位常见的面试题&#xff0c;希望大家通过学习理解相关知识点。下面介绍的是6~10道题。 六、什么是lambda函数&#xff1f; 在Python中&#xff0c;lambda函数也被称为匿名函数&#xff0c;这是因为它们没有正式的函数名。lambda函…

围棋规则

围棋围棋&#xff0c;谁围的地盘大&#xff0c;谁就是赢家 下棋下到最后&#xff0c;19*19361个交叉点都已经瓜分完毕&#xff0c;这就是终局。特别说明 黑子先走&#xff0c;占了便宜。所以按照中国现在的围棋规则&#xff0c;黑棋要多占3.75个点&#xff0c;才算赢。换句话…

骑士在棋盘上的概率(递归)

这道题使用递归思想虽然代码较简洁&#xff0c;但会出现大量的重复计算&#xff0c;但还是想把这种思路展示给大家&#xff1a; class Solution { public://vector<int> dirs {{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1}};double knightProbability(int…