一、概述
JavaEE 是一个企业级应用开发框架,Spring 是 JavaEE 中最常用的框架之一,MyBatis 是一款优秀的 ORM 框架,通过使用这三个框架,可以轻松实现一个 JavaEE 企业级应用。本文将以一个简单的文章阅读网站为例,介绍 JavaEE Spring MyBatis 如何一步一步实现数据库查询功能。
二、环境准备
1. JDK 1.8 及以上版本
2. MySQL 数据库(或其他数据库)
3. Intellij IDEA(或其他 Java IDE)
4. Maven
三、创建数据库
在 MySQL 数据库中执行以下 SQL 语句创建需要的表:
CREATE TABLE `article` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(50) NOT NULL,
`content` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
四、使用 Maven 创建项目
在 Intellij IDEA 中使用 Maven 创建一个新项目,将以下依赖项添加到 pom.xml 文件中:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.9</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
</dependencies>
并创建以下文件夹:
- src/main/java/com/example/demo/DemoApplication.java(主类)
- src/main/java/com/example/demo/controller/ArticleController.java(控制器)
- src/main/java/com/example/demo/model/Article.java(数据模型)
- src/main/java/com/example/demo/mapper/ArticleMapper.java(MyBatis 数据库访问类)
- src/main/resources/application.properties(配置文件)
- src/main/resources/mapper/ArticleMapper.xml(MyBatis SQL 映射文件)
五、实现数据库访问层
1. ArticleMapper.java
创建 ArticleMapper.java 文件,用于在 Java 中访问数据库:
@Mapper
public interface ArticleMapper {
@Select("SELECT * FROM `article`")
List<Article> findAll();
}
- ArticleMapper.xml
创建 ArticleMapper.xml 文件,用于将 SQL 映射到 ArticleMapper.java 接口中:
<mapper namespace="com.example.demo.mapper.ArticleMapper">
<select id="findAll" resultType="com.example.demo.model.Article">
SELECT * FROM `article`
</select>
</mapper>
六、实现业务逻辑层
1. ArticleService.java
创建 ArticleService.java 文件,定义数据访问的方法:
@Service
public class ArticleService {
private final ArticleMapper articleMapper;
public ArticleService(ArticleMapper articleMapper) {
this.articleMapper = articleMapper;
}
public List<Article> findAll() {
return articleMapper.findAll();
}
}
七、实现控制层
1. ArticleController.java
创建 ArticleController.java 文件,用于处理前端用户请求:
@Controller
public class ArticleController {
private final ArticleService articleService;
public ArticleController(ArticleService articleService) {
this.articleService = articleService;
}
@GetMapping("/article")
public String index(Model model) {
List<Article> articles = articleService.findAll();
model.addAttribute("articles", articles);
return "article/index";
}
}
- 配置视图
在 resources 文件夹下创建 templates 文件夹,创建 article 文件夹,并添加 index.html 文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文章列表</title>
</head>
<body>
<h1>文章列表</h1>
<ul>
<li th:each="article : ${articles}" th:text="${article.title}"></li>
</ul>
</body>
</html>
八、配置数据库连接
在 application.properties 文件中添加以下内容:
# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8mb4&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
# MyBatis 配置
mybatis.type-aliases-package=com.example.demo.model
mybatis.mapper-locations=classpath:mapper/*.xml
九、运行程序
运行 DemoApplication.java 后,在浏览器中访问 http://localhost:8080/article 即可看到文章列表。
十、示例说明
本文实现的功能是查询文章列表。其中,数据库表 article 包含字段 id、title 和 content。通过创建 ArticleMapper.java 和 ArticleMapper.xml,实现了数据访问层。通过创建 ArticleService.java,调用数据访问层方法,并在控制层中返回视图,实现了业务逻辑层和表示层。最后,通过在 application.properties 中配置数据库连接,实现了数据库连接和 MyBatis 配置。
以下是部分示例代码:
@Mapper
public interface ArticleMapper {
@Select("SELECT * FROM `article`")
List<Article> findAll();
}
@Service
public class ArticleService {
private final ArticleMapper articleMapper;
public ArticleService(ArticleMapper articleMapper) {
this.articleMapper = articleMapper;
}
public List<Article> findAll() {
return articleMapper.findAll();
}
}
@Controller
public class ArticleController {
private final ArticleService articleService;
public ArticleController(ArticleService articleService) {
this.articleService = articleService;
}
@GetMapping("/article")
public String index(Model model) {
List<Article> articles = articleService.findAll();
model.addAttribute("articles", articles);
return "article/index";
}
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaEE Spring MyBatis如何一步一步实现数据库查询功能 - Python技术站