当前位置: 首页 > news >正文

Spring Boot 整合 MyBatis 配置等案例教程

运行环境: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 轻量级的系统。

这里感谢晓春的 Pull Request,提供了 springboot-mybatis-annotation 的实现。

原文链接:https://bysocket.com/spring-boot-mybatis/

一、运行 springboot-mybatis-annotation 工程

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

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

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

可以看到返回的 JSON 结果:

{"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 连接驱动依赖 --><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.application.properties 配置新增数据库信息,参考如下

## 数据源配置
spring.datasource.url=jdbc:mysql://xx.11.39:3306/springbootdb?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=111111
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

3.在 CityDao 城市数据操作层接口类添加注解 @Mapper、@Select 和 @Results

/**
* 城市 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 配置。

出处:公号「程序员泥瓦匠」 博客: https://bysocket.com/

内容涵盖 Java 后端技术、Spring Boot、Spring Cloud、微服务架构、运维开发、系统监控等相关的研究与知识分享。

http://www.lryc.cn/news/15451.html

相关文章:

  • 比特数据结构与算法(第三章_下)队列的概念和实现(力扣:225+232+622)
  • c++提高篇——STL容器实现打分系统
  • 【图片上传记录三】element-ui组件详解与封装(自定义上传、限制文件大小、格式以及图片尺寸)
  • 一个golang版本管理工具
  • SpringBoot整合Spring Security过滤器链加载执行流程源码分析
  • Jest使用
  • 定位于企业数字化底座,开箱可用(spring cloud+Vue)基础框架,赶紧收藏!
  • java字符统计
  • C#:Krypton控件使用方法详解(第八讲) ——kryptonBreadCrumb
  • 2023从0开始学性能(1) —— 性能测试基础【持续更新】
  • 如何通过一台 iPhone 申请一个 icloud 邮箱账号 后缀为 @icloud.com
  • SQL89 计算总和
  • Netty高级应用之:编解码器与群聊天室开发
  • Vue的生命周期
  • MySQL —— 数据库基础
  • 多线程知识点
  • 有序表之红黑树
  • HTTP状态码都有哪些?
  • Sketch+摹客,100M文件上传最快47s
  • 关系型数据之分区分表分库
  • 微信小程序:基本开发相关文档
  • Win10关闭自动更新
  • Embedding 理解
  • 工业树莓派和PLC怎么选?
  • 多层感知机的区间随机初始化方法
  • 分析JEP 290机制的Java实现
  • Leetcode.2140 解决智力问题
  • 新时代下的医疗行业新基建研讨会
  • BEV感知:DETR3D
  • 亿级高并发电商项目-- 实战篇 --万达商城项目 十二(编写用户服务、发送短信功能、发送注册验证码功能、手机号验证码登录功能、单点登录等模块)