SpringBoot通过xml配置文件方式整合mybatis

SpringBoot通过xml整合mybatis

1.导入相关依赖

SprintBoot使用mybatis连接Mysql数据库,因此需要导入mybatisMySQL驱动这两个依赖。其次需要导入一个druid的连接池依赖。
mybatis依赖和druid依赖我们可以去maven仓库进行查找。maven仓库(注:要用spring-boot-stater-mybatis和spring-boot-stater-druid),并将其xml代码复制到项目的pom.xml中。

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

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

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
    

2.创建实体类

创建你想要获取的表对应的Java实体类。可以通过IDEA创建也可以手工创建。

package com.hky.springboothelloworld.entity;

import lombok.Data;

@Data
public class UserTest {

    private String name;

    private String password;
}

3.创建mapper接口

由于mybatis是用mapper接口访问数据库,因此在实体类父目录下创建mapper文件夹,并在mapper下创建UserMapper接口。

package com.hky.springboothelloworld.mapper;


import com.hky.springboothelloworld.entity.User;
import com.hky.springboothelloworld.entity.UserTest;

import java.util.List;

public interface UserMapper {

    List<UserTest> findAll();

}

4.扫描mapper接口

mapper接口已经创建,但是项目并不知道mapper在哪里,因此要在启动类中添加@MapperScan(basepackage= “mapper文件夹的路径”)。
这样启动类就知道mapper接口的位置。

@SpringBootApplication
@MapperScan(basePackages = "com.hky.springboothelloworld.mapper")
public class SpringbootHelloworldApplication {

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

}

5.实现mapper接口

虽然创建了UserMapper接口,但是其中只有一个空方法findAll。因此要对其进行配置。
在resource目录下创建mapper目录,在该目录下创建对应mapper接口的xml文件。
创建后可以去网上搜索mybatis 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.hky.springboothelloworld.mapper.UserMapper"> #namespace的值应该是mapper接口包名
    <select id="findAll" resultType="UserTest"> #实现sql操作。resultType=“实体类名字” 。
        select * from usertest;
    </select>
</mapper>

6.配置yml文件

虽然创建了实体类、mapper接口、mapper接口的xml配置文件,但是该配置文件有三个问题:
1.项目工程不知道该配置文件在哪里。
2.没有开启驼峰映射。
3.上述代码中resultType=“实体类名字”,该配置文件并不知道这个别名代指的是谁。
因此,我们需要在yml配置文件中写入一下内容:

mybatis:
  mapper-locations: classpath:mapper/*.xml  #指定mapper接口的xml配置文件的路径
  type-aliases-package: com.hky.springboothelloworld.entity #指定别名对应的实体在哪里
  configuration:
    map-underscore-to-camel-case: true	#驼峰映射

在上述内容都实现后,就是在yml文件中写入数据库连接所需要的东西,包括:驱动,账号,密码,url,连接池。

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver #由于已经导入MySQL依赖,这里选择带CJ的驱动
    url: jdbc:mysql://192.168.1.105:3306/test?serverTimezone=UTC #这里由于驱动版本高,因此需要指定时区为东八区
    type: com.alibaba.druid.pool.DruidDataSource
    username: dev
    password: "XXX"

7.测试

上面的工作都完成后就可以进行测试了。
我们直接对我们创建的mapper接口右键,点击goto->test,并勾选findAll函数。IDEA会自动帮我们创建测试类。

package com.hky.springboothelloworld.mapper;

import com.hky.springboothelloworld.SpringbootHelloworldApplicationTests;
import com.hky.springboothelloworld.entity.User;
import com.hky.springboothelloworld.entity.UserTest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

import static org.junit.jupiter.api.Assertions.*;

class UserMapperTest extends SpringbootHelloworldApplicationTests { #这里继承主测试类

    @Autowired 
    private UserMapper usermapper; 

    @Test
    void findAll() {
    List<UserTest> result = usermapper.findAll();
        for (UserTest user : result) {
            System.out.println(user);   #输出读取的数据库内容
        }
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值