MyBatis与Spring Boot集成

xiaoyu 2019-02-14 ⋅ 14 阅读

MyBatis与Spring Boot集成

MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。Spring Boot是一个快速开发基于Spring框架的应用程序的脚手架,它简化了配置和部署过程。将MyBatis与Spring Boot集成可以让我们更加方便地开发持久层代码。

本文将介绍如何将MyBatis与Spring Boot集成。

  1. 添加依赖

在pom.xml文件中添加spring-boot-starter-jdbc依赖以连接数据库,添加mybatis-spring-boot-starter依赖来连接Spring Boot和MyBatis,构建基于Spring Boot的MyBatis应用程序。此外,你可能需要lombok插件简化Java代码。

<dependencies>
    <!-- Spring Boot Jdbc Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <!-- MyBatis Spring Boot Starter -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.4</version>
    </dependency>
    <!-- Lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>
  1. 配置数据源

在application.properties或application.yml文件中配置数据源的相关信息,如数据库URL、用户名和密码等。例如:

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  1. 配置MyBatis

在application.properties或application.yml文件中配置MyBatis的相关属性,如Mapper文件的位置等。例如:

mybatis.mapper-locations=classpath:mapper/*.xml
  1. 创建Mapper接口和映射文件

Mapper接口定义了对数据库的操作方法,其方法和参数需要与SQL语句中的占位符一致。映射文件则存放了具体的SQL语句。例如:

UserMapper.java:

public interface UserMapper {
    List<User> findAll();
}

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">
<map namespace="com.example.demo.mapper.UserMapper">
    <select id="findAll" resultType="com.example.demo.entity.User">
        SELECT * FROM user;
    </select>
</map>
  1. 在Service或Controller中注入Mapper接口并调用其方法,来完成对数据库的操作。例如:

UserServiceImpl.java:

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
    @Override
    public List<User> findAll() {
        return userMapper.findAll();
    }
}

全部评论: 0

    我有话说: