Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例 | 泥瓦匠BYSocket

2023-05-10 16:09 更新

摘要: 原創(chuàng)出處 www.bysocket.com 「泥瓦匠BYSocket 」歡迎轉(zhuǎn)載,保留摘要,謝謝!

『 公司需要人、產(chǎn)品、業(yè)務(wù)和方向,方向又要人、產(chǎn)品、業(yè)務(wù)和方向,方向… 循環(huán)』

本文提綱
一、前言
二、運行 springboot-mybatis-annotation 工程
三、springboot-mybatis-annotation 工程配置詳解
四、小結(jié)

運行環(huán)境:JDK 7 或 8、Maven 3.0+
技術(shù)棧:SpringBoot 1.5+、SpringBoot Mybatis Starter 1.2+ 、MyBatis 3.4+

前言

距離第一篇 Spring Boot 系列的博文 3 個月了。《Springboot 整合 Mybatis 的完整 Web 案例》第一篇出來是 XML 配置 SQL 的形式。雖然 XML 形式是我比較推薦的,但是注解形式也是方便的。尤其一些小系統(tǒng),快速的 CRUD 輕量級的系統(tǒng)。

這里感謝曉春 http://xchunzhao.tk/ 的 Pull Request,提供了 springboot-mybatis-annotation 的實現(xiàn)。

一、運行 springboot-mybatis-annotation 工程

由于這篇文章和 《Springboot 整合 Mybatis 的完整 Web 案例》 類似,所以運行這塊環(huán)境配置大家參考另外一篇兄弟文章。

然后Application 應(yīng)用啟動類的 main 函數(shù),然后在瀏覽器訪問:

http://localhost:8080/api/city?cityName=溫嶺市

可以看到返回的 JSON 結(jié)果:

{
"id": 1,
"provinceId": 1,
"cityName":"溫嶺市",
"description":"我的家在溫嶺。"
}

三、springboot-mybatis-annotation 工程配置詳解

1.pom 添加 Mybatis 依賴

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>springboot</groupId>
    <artifactId>springboot-mybatis-annotation</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>springboot-mybatis-annotation</name>
    <description>Springboot-mybatis :: 整合Mybatis Annotation Demo</description>
    <!-- Spring Boot 啟動父依賴 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.1.RELEASE</version>
    </parent>
    <properties>
        <mybatis-spring-boot>1.2.0</mybatis-spring-boot>
        <mysql-connector>5.1.39</mysql-connector>
    </properties>
    <dependencies>
        <!-- Spring Boot Web 依賴 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- Spring Boot Test 依賴 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- Spring Boot Mybatis 依賴 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis-spring-boot}</version>
        </dependency>
        <!-- MySQL 連接驅(qū)動依賴 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connector}</version>
        </dependency>
        <!-- Junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
</project>

2.在 CityDao 城市數(shù)據(jù)操作層接口類添加注解 @Mapper、@Select 和 @Results

/**
* 城市 DAO 接口類
*
* Created by xchunzhao on 02/05/2017.
*/
@Mapper // 標志為 Mybatis 的 Mapper
public interface CityDao {
/**
* 根據(jù)城市名稱,查詢城市信息
*
* @param cityName 城市名
*/
@Select("SELECT * FROM city")
// 返回 Map 結(jié)果集
@Results({
@Result(property ="id", column ="id"),
@Result(property ="provinceId", column ="province_id"),
@Result(property ="cityName", column ="city_name"),
@Result(property ="description", column ="description"),
})
City findByName(@Param("cityName") String cityName);
}

@Mapper 標志接口為 MyBatis Mapper 接口
@Select 是 Select 操作語句
@Results 標志結(jié)果集,以及與庫表字段的映射關(guān)系

其他的注解可以看 org.apache.ibatis.annotations 包提供的,如圖:

 

可以 git clone 下載工程 springboot-learning-example ,springboot-mybatis-annotation 工程代碼注解很詳細。 https://github.com/JeffLi1993/springboot-learning-example。

四、小結(jié)

注解不涉及到配置,更近貼近 0 配置。再次感謝曉春 http://xchunzhao.tk/ 的 Pull Request~

歡迎掃一掃我的公眾號關(guān)注 — 及時得到博客訂閱哦!
— http://www.bysocket.com/ —
— https://github.com/JeffLi1993 —




以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號