搭建个人博客项目---《写点什么》

本文介绍了如何使用Spring框架搭建一个个人博客系统,包括数据库表的建立、MyBatis完成对象映射、业务逻辑实现以及额外配置。博客系统涵盖了用户登录、文章发布、评论和分类等功能,详细阐述了各模块的实现细节。
摘要由CSDN通过智能技术生成

该项目是通过使用Spring框架来搭建一个个人博客平台。主要分为建立数据映射关系、完善不同功能的服务和控制器以及对应方法映射的SQL语句注入。

一、建立数据映射关系

1.1 数据库及表的建立

该数据库中主要包含了四张表,分别为user用户表、article文章表、category分类表和comment评论表。

这四张表也是分别代表着该博客项目提供的不同功能:用户登录功能、文章发表功能、分类功能和评论功能。建表的SQL语句如下:

DROP DATABASE if exists blog;
CREATE DATABASE blog CHARSET utf8mb4;
USE blog;

CREATE TABLE user (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(255) UNIQUE NOT NULL,
  password VARCHAR(64) NOT NULL,
  nickname VARCHAR(255) NOT NULL,
  avatar VARCHAR(255) NOT NULL
);

CREATE TABLE category (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  user_id BIGINT NOT NULL,
  name VARCHAR(20) UNIQUE NOT NULL
);

CREATE TABLE article (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  user_id BIGINT NOT NULL,
  cover_image VARCHAR(255) NOT NULL,
  category_id INT NOT NULL,
  status TINYINT NOT NULL DEFAULT 0,
  title VARCHAR(200) NOT NULL,
  content TEXT NOT NULL,
  view_count BIGINT NOT NULL DEFAULT 0,
  created_at DATETIME NOT NULL,
  updated_at DATETIME NOT NULL
);

CREATE TABLE comment (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  user_id BIGINT NOT NULL,
  article_id BIGINT NOT NULL,
  content VARCHAR(400) NOT NULL,
  created_at DATETIME NOT NULL
);

注意这里要插入一部分数据用于之后功能的验证和扩展,尤其是user,要先插入部分用户名和登录密码以便于后面做用户登录功能。

1.2 MyBatis完成表与对象的映射

数据库表建立完成后,在Maven中找到mybatis-generator:generate的选项,双击,由MyBatis自动为我们完成表信息对应数据的对象装配。Build成功之后,我们会发现,在我们的源文件中会多出来一个model包和mapper包。model包中自动生成出了数据库表数据对应的对象类,而mapper包中则是数据库基本增删查改部分功能对应的mapper接口。

除了两个映射出的对象类和接口之外,MyBatis还在资源包中配置了四个对象增删改查部分功能映射的xml文件,在这些xml文件中,就可以设置对应方法映射的SQL语句。
在这里插入图片描述

二、 完善不同功能的业务逻辑

这里会创建三个Controller类来处理控制层,分别提供用户、文章和评论等相关功能,这里主要向HTTP服务器提供请求处理或者响应。@Controller来保证把该控制类装配为Spring容器中的Bean,@RequestMapping来设置URL路径以及部分请求方法。该类中会通过@Autowired注解来将业务层的类进行依赖注入,在方法中进行调用。

除此之外,还创建了service包下的四个Service类来作为业务层,分别为userService、articleService、categoryService以及commentService这四个类,Service类中主要通过@Service注解来将该类装配为Spring容器的Bean,然后再通过@Autowired注解来将对应业务的Mapper接口进行依赖注入,这样可以起到一个联系控制层和mapper接口层的作用。

如果控制层的一些方法要与数据库资源进行交互的时候,就需要调用到业务层Service类提供的方法,而Service类中的方法会调用Mapper接口提供的方法,当然其中也会对Mapper接口做一些细节上的处理。最后再通过对mapper.xml文件中SQL和映射规则,就可以从控制层来中转这些站与数据库数据资源完成交互操作。

2.1 用户业务处理

对于用户的处理业务,主要为登录,这里通过@RequestMapping注解 ("/login") 来作为登录页面的URL。当然,也会进行一个用户信息的验证,如果用户名和密码输入错误,或者说不存在该用户的情况,会重新返回再跳转到新的 “/login” 页面。

这里是通过用户名和密码来获取到用户对象,如果不为null,还会将他设置到session会话中来保证持续的页面操作。

控制层代码如下:

@Controller
public class UserController {
   

    @Autowired
    private UserService userService;

    /**
     * 根据用户名和密码来进行校验并且做一个跳转逻辑
     * @return 跳转
     */
    @RequestMapping("/login")
    public String login(String username, String password, HttpServletRequest request) {
   
        //用户名密码校验,省略,只做是否为空的一个判断
        //校验通过的话就跳转到首页,为空就跳转到登陆页面
        if (username == null || password == null) {
   
            return "login";
        }
        User user = userService.login(username, password);
        if (user == null) {
   
            return "login";
        } else {
   
            HttpSession session = request.getSession();
            session.setAttribute("user", user);
            return "/";
        }
    }
}

业务层代码如下:

@Service
public class UserService {
   

    @Autowired
    private UserMapper userMapper;

    public User login(String username, String password) {
   
        return userMapper.login(username, password);
    }
}

Mapper接口代码如下:

@Mapper
public interface 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值