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

本文介紹下SpringBoot整合Mybatis(XML配置方式)的過程。java

[TOC]mysql

1、什麼是 MyBatis?

MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎全部的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可使用簡單的 XML 或註解來配置和映射原生類型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 對象)爲數據庫中的記錄。git

2、整合方式

SpringBoot整合Mybatis也有兩種方式,分別爲XML配置方式和註解方式,主要優點點以下:github

  1. 註解方式:代碼更加精簡,方便。
  2. XML配置方式:隔離sql和業務代碼,清晰表達sql,尤爲對於較長的sql。

XML映射文件也很簡單,只有不多的幾個頂級元素:spring

  • cache – 對給定命名空間的緩存配置。
  • cache-ref – 對其餘命名空間緩存配置的引用。
  • resultMap – 是最複雜也是最強大的元素,用來描述如何從數據庫結果集中來加載對象。
  • sql – 可被其餘語句引用的可重用語句塊。
  • insert – 映射插入語句。
  • update – 映射更新語句。
  • delete – 映射刪除語句。
  • select – 映射查詢語句。

本文介紹XML配置方式,後續文章再介紹註解方式。sql

3、實戰

新建一個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重要內容以下:springboot

<!-- 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();
    }
}

4、測試

本地打開瀏覽器,訪問http://localhost:8080/user/queryAllUsers,成功後返回以下結果:

[{"id":1,"name":"張三","password":"123456","sex":0,"des":"無備註"},
{"id":2,"name":"李四","password":"123456","sex":0,"des":"無備註"}]

到此SpringBoot整合Mybatis(XML配置方式)的功能已經所有實現,有問題歡迎留言溝通哦!

完整源碼地址: https://github.com/suisui2019/springboot-study

推薦閱讀

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等高併發分佈式、大數據、機器學習等技術。 關注下方公衆號便可免費領取:

Java碎碎念公衆號

相關文章
相關標籤/搜索