项目概述
本项目是一个基于 Spring Boot 和 MyBatis 的个人博客系统,旨在实现博客的创建、展示等功能。Spring Boot 提供了便捷的开发框架,MyBatis 则用于数据库操作。
参考这篇博客
数据库表设计
暂未开发完成,后续更新,现仅供学习参考
开发环境搭建
1.项目创建
使用 IDEA创建一个 Spring Boot 项目。
2. 项目结构
创建好的项目结构一般如下:
├── main
│ ├── java
│ │ └── com
│ │ └── blogs
│ │ ├── SpringbootBlogsApplication.java // 项目启动类
│ │ ├── Controller //控制层
│ │ ├── Service // 服务层
│ │ ├── mapper // Mapper接口
│ │ └── model // 实体类
│ └── resources
│ ├── application.properties // 项目配置文件
│ ├── application.yml // 项目配置文件
│ ├── static // 静态资源目录
│ │ ├── css // 样式文件
│ │ ├── img // 图片资源
│ │ ├── js // JavaScript文件
│ │ ├── editor.md // 编辑器相关文件
│ │ ├── blog_content.html // 博客正文页面
│ │ ├── blog_edit.html // 博客编辑页面
│ │ ├── blog_list.html // 博客列表页面
│ │ └── myblog_list.html // 我的博客列表页面
│ └── templates // 模板文件目录
└── test // 测试目录
3. 添加依赖
在pom.xml文件中添加 Spring Boot 与 MyBatis 集成的依赖以及数据库驱动依赖。
xml
<dependencies>
<!-- MyBatis与Spring Boot集成 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.1</version>
</dependency>
<!-- MySQL数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
4.配置数据库连接
在application.ym中配置数据库连接信息,配置如下:
spring:
datasource:
url: jdbc:mysql://localhost:3306/MyProject
username: root
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
数据库设计与实体类创建
1. 数据库设计
设计博客系统所需的数据库表,例如用户表、博客表等。这里以用户表为例,可能包含的字段有:id(用户 ID)、username(用户名)、password(密码)等。
2. 实体类创建
在model包下创建对应的实体类,例如Users类:
public class Users {
private int id;
private String username;
private String password;
private String photo;
private String createtime;
private String updatetime;
private int state;
public Users() {
}
public Users(int id, String username, String password, String photo, String createtime, String updatetime, int state) {
this.id = id;
this.username = username;
this.password = password;
this.photo = photo;
this.createtime = createtime;
this.updatetime = updatetime;
this.state = state;
}
// Getter and Setter methods...
public String toString() {
return "Users{id = " + id + ", username = " + username + ", password = " + password + ", photo = " + photo + ", createtime = " + createtime + ", updatetime = " + updatetime + ", state = " + state + "}";
}
}
MyBatis 配置与 Mapper 接口开发
1. MyBatis 配置
在application.yml中配置 MyBatis 的 Mapper 文件位置:
yaml
mybatis:
mapper-locations: classpath:com/blogs/mapper/*.xml
2. Mapper 接口开发
在com.blogs.mapper包下创建 Mapper 接口,例如UsersMapper接口:
package com.blogs.mapper;
import com.blogs.model.Users;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface UsersMapper {
Users getUserById(int id);
List<Users> getAllUsers();
int insertUser(Users user);
int updateUser(Users user);
int deleteUser(int id);
}
3. Mapper XML 文件开发
在resources目录下创建对应的 Mapper XML 文件,例如UsersMapper.xml,用于编写 SQL 语句:
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.blogs.mapper.UsersMapper">
<select id="getUserById" parameterType="int" resultType="com.blogs.model.Users">
SELECT * FROM users WHERE id = #{id}
</select>
<select id="getAllUsers" resultType="com.blogs.model.Users">
SELECT * FROM users
</select>
<insert id="insertUser" parameterType="com.blogs.model.Users">
INSERT INTO users (username, password) VALUES (#{username}, #{password})
</insert>
<update id="updateUser" parameterType="com.blogs.model.Users">
UPDATE users SET username = #{username}, password = #{password} WHERE id = #{id}
</update>
<delete id="deleteUser" parameterType="int">
DELETE FROM users WHERE id = #{id}
</delete>
</mapper>
服务层开发
在com.blogs.Service包下创建服务类,例如UsersService类,用于处理业务逻辑:
package com.blogs.Service;
import com.blogs.model.Users;
import com.blogs.mapper.UsersMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UsersService {
@Autowired
private UsersMapper usersMapper;
public Users getUserById(int id) {
return usersMapper.getUserById(id);
}
public List<Users> getAllUsers() {
return usersMapper.getAllUsers();
}
public int insertUser(Users user) {
return usersMapper.insertUser(user);
}
public int updateUser(Users user) {
return usersMapper.updateUser(user);
}
public int deleteUser(int id) {
return usersMapper.deleteUser(id);
}
}
业务逻辑层开发
在 Service 层注入 Mapper 接口并调用其中的方法来实现业务逻辑。例如:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ArticleService {
@Autowired
private ArticleMapper articleMapper;
public List<Article> getAllArticles() {
return articleMapper.getAllArticles();
}
public Article getArticleById(Long id) {
return articleMapper.getArticleById(id);
}
public int insertArticle(Article article) {
return articleMapper.insertArticle(article);
}
public int updateArticle(Article article) {
return articleMapper.updateArticle(article);
}
public int deleteArticle(Long id) {
return articleMapper.deleteArticle(id);
}
}

1274

被折叠的 条评论
为什么被折叠?



