从零开始构建个人博客:Spring Boot + Vue-Element 实战教程(六)
2024-01-15 03:20:10
前言
在上篇文章中,我们介绍了如何使用 Git 对项目进行版本管理,实现多人协作开发和方便的代码管理。本节我们将深入讲解项目的各个组成部分,包括项目包的创建和 MyBatis 的配置。
项目包创建
首先,我们需要创建一个 Java 项目的根目录,并在这个根目录下创建两个子目录:src/main/java
和 src/main/resources
。src/main/java
目录用于存放 Java 源代码,而 src/main/resources
目录用于存放配置文件和资源文件。
在 src/main/java
目录下,我们需要创建一个包结构来组织我们的代码。例如,我们可以创建一个名为 com.example.blog
的包,并在该包下创建子包 controller
、service
、dao
等,分别用于存放控制器、服务层、数据访问层等代码。
MyBatis 配置
为了使用 MyBatis,我们需要在 src/main/resources
目录下创建一个名为 mybatis-config.xml
的配置文件。在这个配置文件中,我们需要指定数据库连接信息、实体类和映射器之间的关系等信息。
数据库连接信息包括:
- 驱动程序类名
- 数据库连接 URL
- 数据库用户名
- 数据库密码
实体类和映射器之间的关系可以通过 mapper
元素来指定。mapper
元素的 resource
属性指定了映射器 XML 文件的路径,class
属性指定了实体类的全限定类名。
以下是 mybatis-config.xml
配置文件的示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments>
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/blog"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/blog/dao/ArticleMapper.xml" class="com.example/blog/dao/ArticleMapper"/>
</mappers>
</configuration>
DAO 层实现
在 MyBatis 中,DAO 层主要负责对数据库的操作。DAO 层的接口通常定义在 dao
包下,而接口的实现类通常定义在 dao.impl
包下。
接口定义
DAO 层的接口通常继承自 MyBatis
提供的 BaseMapper
接口。BaseMapper
接口提供了一些基本的方法,如:selectOne()
、selectList()
、insert()
、update()
、delete()
等。
例如,我们可以定义一个名为 ArticleMapper
的接口,用于操作 Article
表:
public interface ArticleMapper extends BaseMapper<Article> {
}
实现类编写
DAO 层的实现类通常继承自 MyBatis
提供的 MapperImpl
类。MapperImpl
类实现了 BaseMapper
接口中定义的所有方法,并提供了默认的实现。
例如,我们可以定义一个名为 ArticleMapperImpl
的类,用于实现 ArticleMapper
接口:
public class ArticleMapperImpl extends MapperImpl<Article> implements ArticleMapper {
}
在 ArticleMapperImpl
类中,我们可以重写 BaseMapper
接口中定义的方法,以实现我们自己的逻辑。例如,我们可以重写 selectOne()
方法来查询单条 Article
记录:
@Override
public Article selectOne(Article article) {
return sqlSession.selectOne("com.example.blog.dao.ArticleMapper.selectOne", article);
}
代码示例
以下是一个使用 MyBatis 操作数据库的代码示例:
public class ArticleService {
@Autowired
private ArticleMapper articleMapper;
public Article getArticleById(Long id) {
return articleMapper.selectOne(new Article(id));
}
public List<Article> getAllArticles() {
return articleMapper.selectList(null);
}
public void saveArticle(Article article) {
articleMapper.insert(article);
}
public void updateArticle(Article article) {
articleMapper.update(article);
}
public void deleteArticleById(Long id) {
articleMapper.delete(new Article(id));
}
}
在上面的代码中,ArticleService
类提供了对 Article
表的 CRUD 操作。ArticleService
类通过 @Autowired
注解自动装配 ArticleMapper
接口的实现类。
总结
在本节中,我们介绍了如何创建 Spring Boot + Vue-Element 个人博客项目的项目包,并配置 MyBatis 以实现数据库的连接和操作。我们详细讲解了如何定义 DAO 层的接口和实现类,并提供了代码示例。通过本教程,您已经掌握了在 Spring Boot 和 Vue-Element 中使用 MyBatis 进行数据库操作的技巧,为您的个人博客项目打下了坚实的基础。