SpringBoot3集成mybatis

1.检查依赖

首先在项目的pom.xml文件中检查是否有mybatis依赖,没有则添加:

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter-test</artifactId>
            <version>3.0.4</version>
            <scope>test</scope>
        </dependency>

通常在创建SpringBoot3项目时可以选择mybatis依赖,创建完成后会自动导入。

2.配置实体和映射

之后在application.yml中配置mybatis实体和xml映射

# 配置mybatis实体和xml映射
mybatis:
  ## 映射xml   这里的classpath 默认是resources包
  mapper-locations: classpath:mapper/*.xml
  configuration:
    # 配置日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true     # 将数据库中下划线形式转换成驼峰形式展示

这里的mapper包可以自行创建,下面我们开始写一个测试用例,在mapper下创建一个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="">   <!-- 这里的namespace指它所映射的接口 -->

</mapper>

3.编写测试接口

下一步创建mapper包,用来书写接口:

下一步在这个包中创建测试接口:

这里给出该接口的测试代码,这个接口用于从数据库中获取信息。

package com.example.test01.mapper;

import com.example.test01.entity.Employee;

import java.util.List;

public interface EmployeeMapper {
    List<Employee> selectAll();
}

并将这个接口的引用地址传到xml的namespace中:

4.主程序添加注解

下一步在启动程序中添加@MapperScan,用来扫描mapper包以及接口:

package com.example.test01;

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

@SpringBootApplication
@MapperScan("com.example.test01.mapper")
public class Test01Application {

    public static void main(String[] args) {
        SpringApplication.run(Test01Application.class, args);
    }

}

5.实现接口方法

之前已经在mapper包下创建好了一个EmployeeMapper接口,现在要对接口中的方法进行实现,所以这里再创建一个service包,并在其中创建一个EmployeeService类用来实现这个接口:

@Service   // 通过service来标注为Spring中的一个bean
public class EmployeeService {

    @Resource
    private EmployeeMapper employeeMapper;  //  在服务层实现这个接口

    public List<Employee> selectAll() {
        List<Employee> list = employeeMapper.selectAll();
        return list;
    }
}

6.调用实现的方法

既然方法都已经准备好了,下一步就是想办法调用这个(让使用者调用)方法,我们一般在controller中编写代码,因此这里写一个EmployeeController类来实现调用。下面是测试代码:

@RestController                     // 对外提供数据接口,返回JSON格式
@RequestMapping("/employee")     // 该类中所有接口的前缀都是 employee
public class EmployeeController {

    @Resource
    private EmployeeService employeeService;

    @GetMapping("/selectAll")
    public Result selectAll(){
        List<Employee> list =  employeeService.selectAll();
        return Result.success(list);
    }
}

7.创建实体

现在还有一个问题,List<Employee>中的Employee是什么?

回到最开始,我们将SpringBoot集成Mybatis的目的是用它来操作我们的数据库,笔者用的是mysql,现在调用方法什么的都写好了,接下来就是正式调用数据库中的信息,这里的Employee就是数据库表的实体。

笔者已经提前准备好了数据库信息,按照这些信息首先在IDEA中创建一个entity包,并在其中创建一个Employee类,这个类中存储相关属性:

public class Employee {
    private Integer id;
    private String name;
    private String sex;
    private Integer no;
    private String description;
    private Integer departmentId;   // java中是驼峰,mysql中是下划线

    // 这里省略get、set方法
}

注意该类中的属性在内容和顺序上都要和数据库中的相同。

8.实现测试

现在基本上所有的东西我们都准备好了,我们回到EmployeeMapper.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.test01.mapper.EmployeeMapper">   <!-- 这里的namespace指它所映射的接口 -->
    <!-- 这里的 id 要和接口中的方法名相同 -->
    <select id="selectAll" resultType="com.example.test01.entity.Employee">
        select * from employee
    </select>
   
</mapper>

到这一步我们终于完成了SpringBoot集成Mybatis并创建了一个测试用例,现在我们到浏览器中测试一下,下面是部分截图:

测试成功!

总结

        SpringBoot集成Mybatis首先需要在pom.xml中检查是否含有依赖,环境安装好后,可以进行测试。首先创建mapper包(resources下)并在其中写入大致的框架,下一步写方法的接口,创建mapper包(com.example下)并创建接口方法;有了接口之后要对其进行实现,这里采用的是创建service包(com.example下)并在其中编写该接口的具体方法,实际上是一个包含该方法的类,下一步就是让这个方法可以被调用,我们回到controller中,创建一个控制器调用接口,最终往往需要调用数据库的信息,所以同时需要在java中创建数据库中的实体,以便于返回数据;这一切都完成后,回到mapper.xml中编写sql语句实现调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值