springboot集成mybatis配置

  • Post category:other

Spring Boot是一个快速开发框架,可以帮助开发人员快速构建基于Spring的应用程序。MyBatis是一个流行的ORM框架,可以帮助开发人员轻松地访问数据库。在本攻略中,我们将介绍如何在Spring Boot应用程序中集成MyBatis,并配置MyBatis以访问数据库。

步骤1:添加MyBatis和数据库驱动依赖

在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version>
</dependency>

<dependency>
    <groupId>com.mysql.cj</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.23</version>
</dependency>

这将添加MyBatis和MySQL数据库驱动程序的依赖项。

步骤2:配置数据源

在application.properties文件中添加以下配置:

spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

这将配置数据源以连接到MySQL数据库。

步骤3:配置MyBatis

在application.properties文件中添加以下配置:

mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.model

这将配置MyBatis以查找映射器文件和实体类。

步骤4:创建实体类和映射器

创建一个实体类,例如User:

public class User {
    private Long id;
    private String name;
    private String email;

    // getters and setters
}

创建一个映射器接口,例如UserMapper:

@Mapper
public interface UserMapper {
    @Select("SELECT * FROM users WHERE id = #{id}")
    User findById(@Param("id") Long id);

    @Insert("INSERT INTO users(name, email) VALUES(#{name}, #{email})")
    void insert(User user);
}

步骤5:使用MyBatis

在需要使用MyBatis的地方注入UserMapper:

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

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

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

现在,您可以在Spring Boot应用程序中使用MyBatis来访问数据库了。

示例1:查询用户

@RestController
public class UserController {
    @Autowired
    private UserService userService;

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

这将返回具有指定ID的用户。

示例2:插入用户

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("/users")
    public void createUser(@RequestBody User user) {
        userService.insert(user);
    }
}

这将插入一个新用户。