作者简介:练习时长两年半的Java up主
个人主页:程序员老茶
ps:点赞是免费的,却可以让写博客的作者开兴好久好久
系列专栏:Java全栈,计算机系列(火速更新中)
格言:种一棵树最好的时间是十年前,其次是现在
动动小手,点个关注不迷路,感谢宝子们一键三连
当然可以,以下是使用 Markdown 格式编写的 Spring Boot 整合 MyBatis 的详细教程:
Spring Boot 是一个用于简化 Spring 应用开发的框架,而 MyBatis 是一个优秀的持久层框架。在本篇文章中,我们将学习如何使用 Spring Boot 整合 MyBatis,以便在项目中实现数据访问和持久化。
在开始之前,确保已经安装了以下软件:
首先,我们需要创建一个新的 Spring Boot 项目。可以通过以下方式使用 Maven 命令创建一个基本的 Spring Boot 项目:
mvn archetype:generate -DgroupId=com.example -DartifactId=mybatis-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
这将创建一个名为 mybatis-demo
的项目。
在创建的项目中,打开 pom.xml
文件,并添加以下依赖项:
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>2.0.1version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.26version>
dependency>
dependencies>
这些依赖项将用于引入 Spring Boot、MyBatis 和 MySQL 相关的功能。
在项目中,我们需要配置数据库连接。在 src/main/resources
目录下创建一个名为 application.properties
的文件,并添加以下内容:
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_demo?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.mybatisdemo.entity
在上述配置中,我们指定了 MySQL 数据库的 URL、用户名和密码,以及 MyBatis XML 文件所在的位置和实体类的包名。
在开始编写数据库访问逻辑之前,我们需要先创建实体类来映射数据库中的表。在 src/main/java/com/example/mybatisdemo/entity
目录下创建一个名为 User.java
的文件,并添加以下内容:
package com.example.mybatisdemo.entity;
public class User {
private Long id;
private String name;
private Integer age;
// Getters and Setters
}
这个实体类包含了三个属性,分别是 id、name 和 age。
接下来,我们需要创建数据访问接口,用于定义数据库操作的方法。在 src/main/java/com/example/mybatisdemo/mapper
目录下创建一个名为 UserMapper.java
的文件,并添加以下内容:
package com.example.mybatisdemo.mapper;
import com.example.mybatisdemo.entity.User;
import java.util.List;
public interface UserMapper {
List<User> findAll();
User findById(Long id);
void insert(User user);
void update(User user);
void delete(Long id);
}
在这个接口中,我们定义了几个基本的数据库操作方法,例如查询所有用户、根据 ID 查询用户、插入用户、更新用户和删除用户。
在 MyBatis 中,我们需要创建一个 XML 文件来定义实际的 SQL 语句。在 src/main/resources/mapper
目录下创建一个名为 UserMapper.xml
的文件,并添加以下内容:
DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mybatisdemo.mapper.UserMapper">
<resultMap id="BaseResultMap" type="com.example.mybatisdemo.entity.User">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="age" property="age" />
resultMap>
<select id="findAll" resultMap="BaseResultMap">
SELECT * FROM user
select>
<select id="findById" parameterType="java.lang.Long" resultMap="BaseResultMap">
SELECT * FROM user WHERE id = #{id}
select>
<insert id="insert">
INSERT INTO user(name, age) VALUES (#{name}, #{age})
insert>
<update id="update">
UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
update>
<delete id="delete">
DELETE FROM user WHERE id = #{id}
delete>
mapper>
在上述映射文件中,我们使用了
元素来定义数据库字段和实体类属性的映射关系,然后使用各种 SQL 语句定义了具体的数据库操作。
接下来,我们需要创建数据访问实现类,用于实际执行数据库操作。在 src/main/java/com/example/mybatisdemo/mapper
目录下创建一个名为 UserMapperImpl.java
的文件,并添加以下内容:
package com.example.mybatisdemo.mapper;
import com.example.mybatisdemo.entity.User;
import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class UserMapperImpl implements UserMapper {
private final SqlSession sqlSession;
public UserMapperImpl(SqlSession sqlSession) {
this.sqlSession = sqlSession;
}
@Override
public List<User> findAll() {
return sqlSession.selectList("findAll");
}
@Override
public User findById(Long id) {
return sqlSession.selectOne("findById", id);
}
@Override
public void insert(User user) {
sqlSession.insert("insert", user);
}
@Override
public void update(User user) {
sqlSession.update("update", user);
}
@Override
public void delete(Long id) {
sqlSession.delete("delete", id);
}
}
在这个实现类中,我们使用 SqlSession
来执行实际的 SQL 语句,并实现了之前在接口中定义的各个方法。
最后一步是创建一个控制器来处理 HTTP 请求,并调用数据访问接口。在 src/main/java/com/example/mybatisdemo/controller
目录下创建一个名为 UserController.java
的文件,并添加以下内容:
package com.example.mybatisdemo.controller;
import com.example.mybatisdemo.entity.User;
import com.example.mybatisdemo.mapper.UserMapper;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/users")
public class UserController {
private final UserMapper userMapper;
public UserController(UserMapper userMapper) {
this.userMapper = userMapper;
}
@GetMapping
public List<User> getAllUsers() {
return userMapper.findAll();
}
@GetMapping("/{id}")
public User getUserById(@PathVariable("id") Long id) {
return userMapper.findById(id);
}
@PostMapping
public void addUser(@RequestBody User user) {
userMapper.insert(user);
}
@PutMapping("/{id}")
public void updateUser(@PathVariable("id") Long id, @RequestBody User user) {
user.setId(id);
userMapper.update(user);
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable("id") Long id) {
userMapper.delete(id);
}
}
在这个控制器中,我们使用 @RestController
注解将其标记为一个 RESTful Web 服务,并使用各种 HTTP 请求方法来处理用户的 CRUD 操作。
现在,我们已经完成了整个项目的编写。可以使用以下命令来启动 Spring Boot 应用程序:
mvn spring-boot:run
然后,可以使用 Postman 或浏览器访问 http://localhost:8080/users
来测试我们的 API,以及对数据库进行增删改查操作。
至此,我们成功地使用 Spring Boot 整合 MyBatis 完成了一个简单的数据访问项目。
在本篇文章中,我们详细介绍了如何使用 Spring Boot 整合 MyBatis,以及如何进行数据库访问和持久化操作。我们从创建项目、添加依赖、配置数据库,到编写实体类、映射文件、数据访问接口和实现类,最后创建控制器来处理 API 请求,完成了一个简单的示例项目。通过学习本文,希望你能够熟悉 Spring Boot 和 MyBatis 的使用,能够在实际项目中应用这些知识。
每日一问:
请简述一下关键词全栈。
全栈是指一种开发工程师的角色或技能集,具备设计、开发、部署和维护全流程的能力。关键词全栈可以涉及包括前端、后端、数据库、服务器等各种不同领域。全栈开发工程师需要具备多种技能,包括但不限于编程语言、数据库管理、网络安全、数据结构和算法等。具体来说,前端方面需要熟悉 HTML、CSS、JavaScript等技术;后端方面需要熟悉多种编程语言,如Java、Python、Ruby等以及熟练使用数据库管理系统;服务器方面需要掌握Linux系统的常用命令和操作等。全栈开发工程师不仅要具备技术方面的能力,还需要具备良好的沟通和协作能力,能够在团队中负责全栈开发流程的各个环节。
往期专栏 |
---|
Java全栈开发 |
数据结构与算法 |
计算机组成原理 |
操作系统 |
数据库系统 |
物联网控制原理与技术 |