返回

Spring Boot Mybatis入门:搭建环境及示例代码

后端

前言

Spring Boot和MyBatis都是备受欢迎的Java框架,它们可以简化Java应用的开发。Spring Boot提供了开箱即用的配置,而MyBatis是一个强大的对象关系映射框架(ORM),可以简化与数据库的交互。本文将详细介绍如何将Spring Boot和MyBatis整合在一起,并提供一个入门示例。

环境搭建

1. 创建Spring Boot项目

首先,我们需要创建一个新的Spring Boot项目。我们可以使用Spring Initializr生成一个Spring Boot项目。在Spring Initializr网站上,选择Spring Boot版本、Java版本以及依赖项。这里我们选择以下依赖项:

  • Spring Boot
  • MyBatis
  • MySQL Connector

2. 配置数据库

接下来,我们需要配置数据库。在本例中,我们将使用MySQL数据库。首先,我们需要在MySQL中创建一个新的数据库。然后,我们需要修改application.properties文件,添加以下配置:

spring.datasource.url=jdbc:mysql://localhost:3306/spring_boot_mybatis
spring.datasource.username=root
spring.datasource.password=password

其中,spring.datasource.url是数据库的URL,spring.datasource.username是数据库的用户名,spring.datasource.password是数据库的密码。

3. 配置MyBatis

接下来,我们需要配置MyBatis。首先,我们需要在pom.xml文件中添加MyBatis的依赖项:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.6.0</version>
</dependency>

然后,我们需要在application.properties文件中添加MyBatis的配置:

mybatis.configuration.map-underscore-to-camel-case=true

其中,mybatis.configuration.map-underscore-to-camel-case属性指定是否将数据库中的下划线转换为Java中的驼峰命名法。

示例代码

1. 创建实体类

首先,我们需要创建一个实体类,它将映射到数据库中的表。在本例中,我们将创建一个User实体类:

@Entity
@Table(name = "users")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String username;

    private String password;

    // 省略getter和setter方法
}

2. 创建MyBatis映射文件

接下来,我们需要创建一个MyBatis映射文件,它将指定实体类和数据库表之间的映射关系。在本例中,我们将创建一个UserMapper.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.example.demo.mapper.UserMapper">

    <insert id="insert" useGeneratedKeys="true" keyProperty="id">
        INSERT INTO users (username, password) VALUES (#{username}, #{password})
    </insert>

    <select id="select" resultType="com.example.demo.entity.User">
        SELECT * FROM users WHERE id = #{id}
    </select>

    <update id="update">
        UPDATE users SET username = #{username}, password = #{password} WHERE id = #{id}
    </update>

    <delete id="delete">
        DELETE FROM users WHERE id = #{id}
    </delete>

</mapper>

3. 创建Service层

接下来,我们需要创建一个Service层,它将提供业务逻辑。在本例中,我们将创建一个UserService类:

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public void insert(User user) {
        userMapper.insert(user);
    }

    public User select(Long id) {
        return userMapper.select(id);
    }

    public void update(User user) {
        userMapper.update(user);
    }

    public void delete(Long id) {
        userMapper.delete(id);
    }

}

4. 创建Controller层

最后,我们需要创建一个Controller层,它将处理HTTP请求。在本例中,我们将创建一个UserController类:

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping
    public void insert(@RequestBody User user) {
        userService.insert(user);
    }

    @GetMapping("/{id}")
    public User select(@PathVariable Long id) {
        return userService.select(id);
    }

    @PutMapping
    public void update(@RequestBody User user) {
        userService.update(user);
    }

    @DeleteMapping("/{id}")
    public void delete(@PathVariable Long id) {
        userService.delete(id);
    }

}

测试

我们可以使用以下命令运行Spring Boot项目:

mvn spring-boot:run

然后,我们可以使用以下命令测试API:

curl -X POST -H "Content-Type: application/json" -d '{"username": "john", "password": "password"}' http://localhost:8080/users

curl -X GET http://localhost:8080/users/1

curl -X PUT -H "Content-Type: application/json" -d '{"id": 1, "username": "john", "password": "new_password"}' http://localhost:8080/users

curl -X DELETE http://localhost:8080/users/1

总结

本文详细介绍了如何在Spring Boot中使用MyBatis。我们从环境搭建开始,然后介绍了示例代码和测试方法。希望本文能够帮助您快速入门Spring Boot Mybatis开发。