zoukankan      html  css  js  c++  java
  • Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例

    本文提纲
    一、前言
    二、运行 springboot-mybatis-annotation 工程
    三、springboot-mybatis-annotation 工程配置详解
    四、小结

    运行环境:JDK 7 或 8、Maven 3.0+
    技术栈:SpringBoot 1.5+、SpringBoot Mybatis Starter 1.2+ 、MyBatis 3.4+

    前言

    距离第一篇 Spring Boot 系列的博文 3 个月了。《Springboot 整合 Mybatis 的完整 Web 案例》第一篇出来是 XML 配置 SQL 的形式。虽然 XML 形式是我比较推荐的,但是注解形式也是方便的。尤其一些小系统,快速的 CRUD 轻量级的系统。

    这里感谢晓春 http://xchunzhao.tk/ 的 Pull Request,提供了 springboot-mybatis-annotation 的实现。

    一、运行 springboot-mybatis-annotation 工程

    由于这篇文章和 《Springboot 整合 Mybatis 的完整 Web 案例》 类似,所以运行这块环境配置大家参考另外一篇兄弟文章。

    然后Application 应用启动类的 main 函数,然后在浏览器访问:

    1
    http://localhost:8080/api/city?cityName=温岭市

    可以看到返回的 JSON 结果:

    1
    2
    3
    4
    5
    6
    {
    "id": 1,
    "provinceId": 1,
    "cityName": "温岭市",
    "description": "我的家在温岭。"
    }

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

    1.pom 添加 Mybatis 依赖

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <?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 连接驱动依赖 -->
            <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 城市数据操作层接口类添加注解 @Mapper、@Select 和 @Results

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    /**
    * 城市 DAO 接口类
    *
    * Created by xchunzhao on 02/05/2017.
    */
    @Mapper // 标志为 Mybatis 的 Mapper
    public interface CityDao {
     
    /**
    * 根据城市名称,查询城市信息
    *
    * @param cityName 城市名
    */
    @Select("SELECT * FROM city")
    // 返回 Map 结果集
    @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 标志结果集,以及与库表字段的映射关系

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

    可以 git clone 下载工程 springboot-learning-example ,springboot-mybatis-annotation 工程代码注解很详细。 https://github.com/JeffLi1993/springboot-learning-example

    四、小结

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

  • 相关阅读:
    Java 中字符串的格式化
    JAVA字符串格式化-String.format()的使用
    JVM参数配置大全
    Java日期时间使用总结
    Java 通过JDBC连接Mysql数据库的方法和实例
    在eclipse导入Java 的jar包的方法 JDBC
    CentOS 7中如何安装mysql server
    python处理excel
    Chrome Developer Tools:Network Panel说明
    Mysql命令alter add:增加表的字段
  • 原文地址:https://www.cnblogs.com/ZenoLiang/p/7867319.html
Copyright © 2011-2022 走看看