最简单的Springboot集成Mybatis教程

从18年开始到现在,项目的开发都是用的框架都是Springboot,而对象关系框架先是用的SpringData JPA,今年的新项目又用了Mybatis。两者虽然整合方式不同,但是使用起来却很相似。刚好一直想写一篇关于Springboot的文章,所以就结合最近做的项目,把Springboot集成Mybatis的步骤大体讲一下。
1、首先新建一个springboot项目,名字就叫batis吧,springboot的版本就用2.0.5.RELEASE。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.5.RELEASE</version>
    <relativePath/>
</parent>

2、导入相应的jar包

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>

    <!-- mysql -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

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

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

3、新建User实体类

import lombok.Data;
import lombok.ToString;
import java.io.Serializable;

@Data
@ToString
public class User implements Serializable {
    private Integer id;
    private String userName;
    private Integer userAge;
}

4、新建UserMapper类,并新增查询用户sel方法,新增用户add方法

import com.batis.model.User;
import org.springframework.stereotype.Repository;

@Repository
public interface UserMapper {
    User sel(int id);
    void add(User user);
}

5、在资源目录resources下新建mapping目录,并创建UserMapping.xml文件,配置相应的sel、add方法

<?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.batis.mapper.UserMapper">
    <resultMap id="BaseResultMap" type="com.batis.model.User">
        <result column="id" jdbcType="INTEGER" property="id" />
        <result column="user_name" jdbcType="VARCHAR" property="userName" />
        <result column="user_age" jdbcType="INTEGER" property="userAge" />
    </resultMap>

    <sql id="baseSql">
        select id, user_name, user_age from user
    </sql>

    <select id="sel" resultMap="BaseResultMap" parameterType="java.lang.Integer">
        <include refid="baseSql"/> where id = #{id}
    </select>

    <insert id="add" parameterType="com.batis.model.User">
        INSERT INTO user(user_name, user_age) VALUES (#{userName}, #{userAge});
    </insert>
</mapper>

6、在启动类新增注解@MapperScan,指定mapper文件的扫描目录,否则会报错Field userMapper in com.batis.service.impl.UserServiceImpl required a bean of type ‘com.batis.mapper.UserMapper’ that could not be found.

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan("com.batis.mapper")
@SpringBootApplication
public class BatisApplication {
    public static void main(String[] args) {
        SpringApplication.run(BatisApplication.class, args);
    }
}

7、在resources目录的application.properties配置文件下新增mysql数据库配置和mybatis配置

server.port=8080

# mysql数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# mybatis配置
# Mapper文件存放目录
mybatis.mapper-locations=classpath:mapping/*Mapping.xml

8、创建UserService接口类和实现类UserServiceImpl

import com.batis.model.User;

public interface UserService {
    public User sel(int id);
    public void add(User user);
}

import com.batis.mapper.UserMapper;
import com.batis.model.User;
import com.batis.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

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

    @Override
    public User sel(int id) {
        return userMapper.sel(id);
    }

    @Override
    public void add(User user) {
        userMapper.add(user);
    }
}

9、创建控制器类UserController

import com.batis.model.User;
import com.batis.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping(value = "/getUser/{id}", method = RequestMethod.GET)
    public String getUser(@PathVariable int id) {
        return userService.sel(id).toString();
    }

    @RequestMapping(value = "/addUser", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
    public String addUser(@RequestBody User user) {
        try {
            userService.add(user);
        } catch (Exception e) {
            e.printStackTrace();
            return "error";
        }
        return "success";
    }
}

10、在mysql的test库下创建user表

CREATE TABLE `user` (
	`id` INT(32) NOT NULL AUTO_INCREMENT,
	`user_name` VARCHAR(32) NOT NULL,
	`user_age` INT(3) NOT NULL,
	PRIMARY KEY (`id`) USING BTREE
)

11、启动batis项目并使用postman测试
新增用户:
在这里插入图片描述
查询用户:
在这里插入图片描述
至此Springboot集成Mybatis已经全部完成,测试也非常成功,是不是很简单!
有可以改进的地方希望诸位同学不要吝惜笔墨,加以指正,万分感谢!

发布了8 篇原创文章 · 获赞 3 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/huanongying123/article/details/104264747