欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringBoot系列-整合Mybatis(XML配置方式)

程序员文章站 2022-06-13 08:29:08
本文介绍下SpringBoot整合Mybatis(XML配置方式)的过程。 [TOC] 一、什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以 ......

本文介绍下springboot整合mybatis(xml配置方式)的过程。

一、什么是 mybatis?

mybatis 是一款优秀的持久层框架,它支持定制化 sql、存储过程以及高级映射。mybatis 避免了几乎所有的 jdbc 代码和手动设置参数以及获取结果集。mybatis 可以使用简单的 xml 或注解来配置和映射原生类型、接口和 java 的 pojo(plain old java objects,普通老式 java 对象)为数据库中的记录。

二、整合方式

springboot整合mybatis也有两种方式,分别为xml配置方式和注解方式,主要优势点如下:

  1. 注解方式:代码更加精简,方便。
  2. xml配置方式:隔离sql和业务代码,清晰表达sql,尤其对于较长的sql。

xml映射文件也很简单,只有很少的几个*元素:

  • cache – 对给定命名空间的缓存配置。
  • cache-ref – 对其他命名空间缓存配置的引用。
  • resultmap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。
  • sql – 可被其他语句引用的可重用语句块。
  • insert – 映射插入语句。
  • update – 映射更新语句。
  • delete – 映射删除语句。
  • select – 映射查询语句。

本文介绍xml配置方式,后续文章再介绍注解方式。

三、实战

新建一个spring boot项目spring-boot-mybatis-xml,按照下面步骤操作。

1.pom.xml中引入jar

整合mybatis的核心是依赖mybatis-spring-boot-starter,它提供了:

  • 自动检测现有的datasource。
  • 将创建并注册sqlsessionfactory的实例,该实例使用sqlsessionfactorybean将该datasource作为输入进行传递。
  • 将创建并注册从sqlsessionfactory中获取的sqlsessiontemplate的实例。
  • 自动扫描您的mappers,将它们链接到sqlsessiontemplate并将其注册到spring上下文,以便将它们注入到您的bean中。

pom.xml重要内容如下:

<!-- mybatis-starter  -->
<dependency>
    <groupid>org.mybatis.spring.boot</groupid>
    <artifactid>mybatis-spring-boot-starter</artifactid>
    <version>2.1.1</version>
</dependency>

<!-- mysql 连接驱动依赖 -->
<dependency>
    <groupid>mysql</groupid>
    <artifactid>mysql-connector-java</artifactid>
    <version>5.1.39</version>
</dependency>

<dependency>
    <groupid>org.projectlombok</groupid>
    <artifactid>lombok</artifactid>
    <optional>true</optional>
</dependency>

2.application.yml中添加配置

application.yml中添加数据源和mybatis的配置,内容如下:

spring:
  #数据源
  datasource:
    url: jdbc:mysql://localhost:3306/demo?useunicode=true&characterencoding=utf-8&zerodatetimebehavior=converttonull
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.driver
#mybatis配置
mybatis:
  typealiasespackage: com.example.springboot.mybatisxml.entity
  mapperlocations: classpath:mapper/*.xml
  config-location: classpath:mybatis-config.xml

3.添加user的映射文件

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

<mapper namespace= "com.example.springboot.mybatisxml.dao.mapper.usermapper" >
    <resultmap id ="usermap" type="com.example.springboot.mybatisxml.entity.user">
        <result column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="sex" property="sex"/>
        <result column="password" property="password"/>
        <result column="des" property="des"/>
    </resultmap>

    <select id = "queryallusers" resulttype= "com.example.springboot.mybatisxml.entity.user">
      select * from user
    </select>
</mapper>

4.添加dao接口

接口的名字和映射文件的名字相同,接口中方法的名字和要调用的映射文件中的标签的id相同。

usermapper.java代码如下:

public interface usermapper {

    list<user> queryallusers();
}

5.添加访问控制层

usercontroller代码如下:

/**
 * usercontroller
 *
 * @author: java_suisui
 *
 */
@slf4j
@restcontroller
@requestmapping("/user")
public class usercontroller {
    @autowired
    private userservice userservice;

    /**
     * 查询 所有用户
     *
     */
    @getmapping("/queryallusers")
    public list<user> queryallusers(){
        return userservice.queryallusers();
    }
}

四、测试

本地打开浏览器,访问http://localhost:8080/user/queryallusers,成功后返回如下结果:

[{"id":1,"name":"张三","password":"123456","sex":0,"des":"无备注"},
{"id":2,"name":"李四","password":"123456","sex":0,"des":"无备注"}]

到此springboot整合mybatis(xml配置方式)的功能已经全部实现,有问题欢迎留言沟通哦!

完整源码地址:

推荐阅读

1.java中打印日志,这4点很重要!

2.springboot集成jwt实现权限认证

3.一分钟带你了解jwt认证!

4.springboot中如何优雅的读取yml配置文件?

5.springboot中如何灵活的实现接口数据的加解密功能?


限时领取免费java相关资料,涵盖了java、redis、mongodb、mysql、zookeeper、spring cloud、dubbo/kafka、hadoop、hbase、flink等高并发分布式、大数据、机器学习等技术。
关注下方公众号即可免费领取:

SpringBoot系列-整合Mybatis(XML配置方式)