SpringBoot整合Mybatis入门级教程


准备步骤

1.导入依赖

在一个普通springboot项目基础上加上这些依赖

<dependencies>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.42</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>

2.创建实体类和数据库

public class Emp {
    private int empId;
    private String empName;
    private int empAge;
    //getset构造方法toString()省略
 }

sql语句

CREATE DATABASE IF NOT EXISTS springbootMybatis;
USE springbootMybatis;
CREATE TABLE emp(
`emp_id` INT PRIMARY KEY AUTO_INCREMENT,
`emp_name` VARCHAR(50) NOT NULL,
`emp_age` INT NOT NULL
);

INSERT INTO emp(emp_name,emp_age) VALUES('老王',19);
INSERT INTO emp(emp_name,emp_age) VALUES('飞飞',23);
INSERT INTO emp(emp_name,emp_age) VALUES('飞科',61);
INSERT INTO emp(emp_name,emp_age) VALUES('学长',29);
INSERT INTO emp(emp_name,emp_age) VALUES('李默',51);

3.创建mapper文件和接口

EmpMapper接口

public interface EmpMapper {

    List<Emp> getEmp();

}

EmpMapper.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.mybatistest.mapper.EmpMapper">


    <resultMap id="BaseResultMap" type="com.mybatistest.pojo.Emp" >
        <id column="emp_id" property="empId" jdbcType="INTEGER" />
        <result column="emp_name" property="empName" jdbcType="VARCHAR" />
        <result column="emp_age" property="empAge" jdbcType="INTEGER" />
    </resultMap>

    <select id="getEmp" resultMap="BaseResultMap">
        select * from emp
    </select>

</mapper>

注意, mapper接口要放在主启动类所在包的子包下,不然扫描不到在这里插入图片描述

4.配置yml文件

spring:
  datasource:
    name: mydb 
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://localhost:3306/springbootMybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8 #数据库连接地址
    username: root # 数据库用户名
    password: qq001129 # 数据库用户密码
    driver-class-name: com.mysql.jdbc.Driver # 数据库驱动
mybatis:
  mapper-locations: classpath*:/mybatis/mapper/*Mapper.xml # 你的mapper映射文件路径
  type-aliases-package: com.mybatistest.mapper # mapper接口所在的包(不写也行)
logging:
  level: #设置日志文件警告等级
    com.atguigu.spring.boot.mapper: debug
    com.atguigu.spring.boot.test: debug

我的文件结构如下图
在这里插入图片描述

5.测试

@RunWith(SpringRunner.class)
@SpringBootTest
class MybatistestApplicationTests {

    @Autowired
    // 这里有可能显示Could not autowire. No beans of 'EmpMapper' type found.
    // 是idea的问题 , 可以不理会
    private EmpMapper empMapper;

    Logger logger = LoggerFactory.getLogger(MybatistestApplication.class);

    @Test
    void contextLoads() {
        logger.info(empMapper.getEmp().toString());
    }

}

结果

2020-12-02 09:53:57.277  INFO 3152 --- [           main] com.mybatistest.MybatistestApplication   : [Emp{empId=1, empName='老王', empAge=19}, Emp{empId=2, empName='飞飞', empAge=23}, Emp{empId=3, empName='飞科', empAge=61}, Emp{empId=4, empName='学长', empAge=29}, Emp{empId=5, empName='李默', empAge=51}]


总结

springboot整合mybatis , 主要是简化了配置文件的操作, 使用yml可以更方便的配置. 顺带一提 , springboot并没有提供mybatis所需要的启动器 , 这个启动器是mybatis官方制作的 (就连Hibernate都有) , 替mybatis感到不公哈哈哈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值