从零开始学SpringBoot2.x(13-SpringBoot中使用Mybatis(XML篇))

在上一篇文章“SpringBoot中使用Mybatis(注解篇)”中我与大家简单分享了如何在SpringBoot中以注解书写SQL的方式来使用Mybatis,但在实际的开发过程中,这种方式与代码相耦合,不便于维护,并且过于复杂的SQL语句难以阅读,所以一般会用XML的方式来写SQL语句。

 

其实过程都差不多,只不过把SQL移到XML中罢了!

 

开撸~

 

1、pom.xml如下:

<dependencies>
        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <!-- mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!-- druid连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.9</version>
        </dependency>
        <!-- 测试组件-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

 

 

2、整体工程目录如下:

 

 

3、application.yml配置如下:

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mybatis?&characterEncoding=utf-8&useSSL=false #数据库的连接信息
    driver-class-name: com.mysql.jdbc.Driver #数据库驱动
    username: root #数据库的用户名
    password: 123456 #数据库的密码
    type: com.alibaba.druid.pool.DruidDataSource #使用druid连接池
mybatis:
  configuration:
    map-underscore-to-camel-case: true #开启mybatis驼峰转下划线命名规则规则
  mapper-locations: classpath:/mapper/**/*.xml #配置mybatis映射文件路径
  type-aliases-package: com.xiao.entity #配置实体类包名

 

由于其他的代码与上一篇文章基本一致,在这里我就不过多赘述了!

 

4、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">

<!-- namespace对应接口全类名 -->
<mapper namespace="com.xiao.mapper.UserMapper">
    <!-- id要与接口中方法名保持一致,入参要入接口方法中入参类型保持一致,返回值要与实体类对应
    (一下这种方式要求表中的字段按驼峰命名规则转换后要与实体类中属性名称保持一致) -->
    <select id="getUserById" parameterType="java.lang.Long" resultType="com.xiao.entity.User">
        select * from tb_user where id = #{id}
    </select>
</mapper>

 

 

5、来看看测试类:

package com.xiao.mapper;

import com.xiao.entity.User;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import static org.junit.Assert.*;

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {

    @Autowired
    private UserMapper userMapper;


    @Test
    public void getUserById(){
        User user = userMapper.getUserById(1);
        System.out.println(user);
        Assert.assertNotNull(user);
    }

}

 

6、数据库信息如下:

 

 

7、运行测试类,结果如下:

 

 

可以看到,数据已被成功查询!

 

关于Mybatis的XML映射文件还有很多东西,包括还可以使用工具根据数据库自动生成,在以后的文章中我再与大家分享!

 

源码链接:

https://github.com/devilyang123/SpringBoot-Learning/tree/master/springboot-mybatis-xml

 

 

 


欢迎关注我的个人公众号“笑笑是一个码农”,第一时间获取最新文章。

您的关注,就是支持我持续写作的最大动力!

还可以免费领取前后端全站学习视频资料呦~

个人微信号,如需添加微信,请备注来源,因为妈妈从小就告诉我不要随便跟陌生人聊天!(嘿嘿~)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章