SpringBoot MyBatis保姆级整合教程

目录
  • Spring Boot整合MyBatis
    • 数据准备
    • 创建项目引入相应的启动器
    • 编写与数据库表
    • 编写配置文件
  • 注解方式整合Mybatis
  • 配置文件的方式整合MyBatis
    • 创建接口类
    • 创建XML映射文件
    • 配置XML映射文件路径
    • 编写单元测试进行接口方法测试

Spring Boot整合MyBatis

MyBatis 是一款优秀的持久层框架,Spring Boot官方虽然没有对MyBatis进行整合,但是MyBatis团队自行适配了对应的启动器,进一步简化了使用MyBatis进行数据的操作

基础环境搭建

数据准备

在MySQL中,先创建了一个数据库springbootdata,然后创建了两个表t_article和t_comment并向表中插入数据。其中评论表t_comment的a_id与文章表t_article的主键id相关联

# 创建数据库
CREATE DATABASE springbootdata;
# 选择使用数据库
USE springbootdata;
# 创建表t_article并插入相关数据
DROP TABLE IF EXISTS t_article;
CREATE TABLE t_article (
id int(20) NOT NULL AUTO_INCREMENT COMMENT '文章id',
title varchar(200) DEFAULT NULL COMMENT '文章标题',
content longtext COMMENT '文章内容',
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO t_article VALUES ('1', 'Spring Boot基础入门', '从入门到精通讲解...');
INSERT INTO t_article VALUES ('2', 'Spring Cloud基础入门', '从入门到精通讲
解...');
# 创建表t_comment并插入相关数据
DROP TABLE IF EXISTS t_comment;
CREATE TABLE t_comment (
id int(20) NOT NULL AUTO_INCREMENT COMMENT '评论id',
content longtext COMMENT '评论内容',
author varchar(200) DEFAULT NULL COMMENT '评论作者',
a_id int(20) DEFAULT NULL COMMENT '关联的文章id',
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
INSERT INTO t_comment VALUES ('1', '很全、很详细', 'lucy', '1');
INSERT INTO t_comment VALUES ('2', '赞一个', 'tom', '1');
INSERT INTO t_comment VALUES ('3', '很详细', 'eric', '1');
INSERT INTO t_comment VALUES ('4', '很好,非常详细', '张三', '1');
INSERT INTO t_comment VALUES ('5', '很不错', '李四', '2');

创建项目引入相应的启动器

编写与数据库表

编写与数据库表t_comment和t_article对应的实体类Comment和Article

public class Comment {
  private Integer id;
  private String content;
  private String author;
  private Integer aId;
}
public class Article {
  private Integer id;
  private String title;
  private String content;
}

编写配置文件

在application.properties配置文件中进行数据库连接配置

# MySQL数据库连接配置
spring:
datasource:
 url: jdbc:mysql://localhost:3306/springbootdata?
 serverTimezone=UTC&characterEncoding=UTF-8
 username: root
 password: wu7787879

注解方式整合Mybatis

需求:实现通过ID查询Comment信息

(1)创建一个对t_comment表数据操作的接口CommentMapper

public interface CommentMapper {
  @Select("SELECT * FROM t_comment WHERE id =#{id}")
  public Comment findById(Integer id);
}

(2)在Spring Boot项目启动类上添加@MapperScan(“xxx”)注解

@SpringBootApplication
@MapperScan("com.lagou.mapper")
public class Springboot02MybatisApplication {
  public static void main(String[] args) {
    SpringApplication.run(Springboot02MybatisApplication.class, args);
 }
}

(3)编写测试方法

@RunWith(SpringRunner.class)
@SpringBootTest
class SpringbootPersistenceApplicationTests {
  @Autowired
  private CommentMapper commentMapper;
  @Test
  void contextLoads() {
    Comment comment = commentMapper.findById(1);
    System.out.println(comment);
 }
}

打印结果:

配置文件的方式整合MyBatis

第一、二步骤使用Free Mybatis plugin插件生成

创建接口类

创建一个用于对数据库表t_article数据操作的接口ArticleMapper

@Mapper
public interface ArticleMapper {
  public Article selectArticle(Integer id);
}

创建XML映射文件

resources目录下创建一个统一管理映射文件的包mapper,并在该包下编写与ArticleMapper接口方应的映射文件ArticleMapper.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.lagou.mapper.ArticleMapper">
  <select id="selectArticle" resultType="Article">
   select * from Article
  </select>
</mapper>

配置XML映射文件路径

在项目中编写的XML映射文件,Spring Boot并无从知晓,所以无法扫描到该自定义编写的XML配置文件,还必须在全局配置文件application.properties中添加MyBatis映射文件路径的配置,同时需要添加实体类别名映射路径,示例代码如下

mybatis:
#配置MyBatis的xml配置文件路径
mapper-locations: classpath:mapper/*.xml
#配置XML映射文件中指定的实体类别名路径
type-aliases-package: com.lagou.base.pojo

编写单元测试进行接口方法测试

@Autowired
  private ArticleMapper articleMapper;
  @Test
  void contextLoads2() {
    Article article = 	    articleMapper.selectByPrimaryKey(1);
    System.out.println(article);
 }

打印结果:

到此这篇关于SpringBoot MyBatis保姆级整合教程的文章就介绍到这了,更多相关SpringBoot MyBatis内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot整合MybatisPlus实现增删改查功能

    目录 1.概述 2.引入依赖 3.配置连接信息 4.新建两个表 5.在项目中创建相应的实体类 5.1 创建基础实体类 5.2 SysDictType实体类 5.3 SysDictData实体类 6.创建DAO继承MybatisPlus增强接口 6.1 SysDictTypeMapper 6.2 SysDictDataMapper 7.进一步封装到Service层 7.1 定义Service接口中的抽象方法 7.2 实现Service接口中的方法 8.在控制层上进行增删改查操作 8.1 SysDi

  • SpringBoot详解整合MyBatis过程中可能遇到的问题

    尽量不要用 jUnit 提供的单元测试 提一个要求尽量使用SpringBoot 提供的测试类进行测试,能够自动扫描组件以及使用容器中的bean对象 还有如果有组件 中存在注入对象的话,那么必须在SpringBoot容器中取出 这个组件,进而使用注入的对象的功能!!! 今天有个错误,花了很长时间来解决,最后发现是一个很低级很基础的错误! 这是mapper接口,使用@mapper 相当于将接口的代理对象注册进入bean中,但是上下文中找不到(其实是正常) 因为 @Mapper 这个注解是 Mybat

  • SpringBoot整合MyBatis的代码详解

    目录 SpringBoot整合MyBatis 依赖的导入 大致目录 相关文件配置 创建数据库和相对应的Pojo类 Service层的编写 Controller层的编写 登录测试 SpringBoot整合MyBatis 依赖的导入 整合mybatis之前我们需要相对应的导入相关依赖. <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-s

  • SpringBoot整合Mybatis-plus的具体过程使用

    目录 1.MyBatisX插件 2.引入依赖 3.编写配置 4.编写接口 5.运行测试 6.完整代码 1.MyBatisX插件 在使用mybatis或者mybatis-plus时,我们可以安装IDEA的MyBatis的插件 - MyBatisX, 这样我们就可以实现点击接口跳转到sql文件, 点击sql文件可以跳转到接口的功能, 很方便.这个插件的功能还有很多, 可以查看MyBatis-Plus官网 安装方法:打开 IDEA,进入 File -> Settings -> Plugins -&g

  • SpringBoot 整合mybatis+mybatis-plus的详细步骤

    目录 前言 准备工作 整合步骤 前言 在真实的项目开发中,使用SpringBoot可以说非常普遍了,而在框架整合中,与数据库的交互无外乎使用jpa,mybatis,mybatis-plus这几种,虽然hibernate仍然有在使用,毕竟框架毕竟重,而且用起来相较于mybatis还是差了那么点意思: 接下来演示下使用 SpringBoot 同时与mybatis,mybatis-plus的整合步骤: 准备工作 1.准备如下一个数据表 CREATE TABLE `student` ( `id` var

  • springboot整合mybatis流程详解

    目录 1.mybatis是什么 2.整合 2.1 导入依赖 2.2 创建包和类 2.3 在application.yaml配置mybatis 3.使用注解版mybaits 4.实战过程 1.mybatis是什么 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射.MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作.MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型.接口和 Java POJO(Plain Old Java

  • springboot整合mybatis的超详细过程(配置模式+注解模式)

    目录 一.简单介绍 二具体配置 2.1.配置相关的依赖. 2.2 写.mapper.controller.service 2.2.1mapper文件 2.2.2service文件 2.2.2controller文件 2.3配置相关文件 三.结果截图 四.可能遇到的报错 一.简单介绍 1.配置相关的依赖2.配置模式3写.mapper.controller.service4.配置yaml文件 配置mybatis全局配置文件(这里我使用的是配置模式+注解模式所以需要配置全局文件) 二具体配置 2.1.

  • SpringBoot整合Mybatis-plus的具体使用

    目录 一.mybatis-plus简介: 二.springboot整合mybatis-plus案例 一.mybatis-plus简介: Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发.提高效率而生.这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网.那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于J

  • SpringBoot MyBatis保姆级整合教程

    目录 Spring Boot整合MyBatis 数据准备 创建项目引入相应的启动器 编写与数据库表 编写配置文件 注解方式整合Mybatis 配置文件的方式整合MyBatis 创建接口类 创建XML映射文件 配置XML映射文件路径 编写单元测试进行接口方法测试 Spring Boot整合MyBatis MyBatis 是一款优秀的持久层框架,Spring Boot官方虽然没有对MyBatis进行整合,但是MyBatis团队自行适配了对应的启动器,进一步简化了使用MyBatis进行数据的操作 基础

  • Django项目uwsgi+Nginx保姆级部署教程实现

    写在最前: 非常抱歉的是,因为突如其来的疫情,我的hadoop系列断更了,很难受,因为我的分布式环境在学校,我的笔记本配置带不起来,代码跑不起来我是不敢写博客的,然后寒假在家写代码也没啥意思,看了非常多的书,把计网和操作系统重新学了一遍.因为实习的需要,未来我更多的技术可能在Python这块,但是java相关的内容我也会努力保持更新,同时也会出更多的入门教程给大家谢谢大家. 背景: 最近在学习django的过程中,用django做了一个小demo,所以试试看能不能部署到服务器上,自己顺便也熟悉一

  • 保姆级python教程写个贪吃蛇大冒险

    目录 导语 ​ 正文 总结 导语 ​ 贪吃蛇,大家应该都玩过.当初第一次接触贪吃蛇的时候 ,还是我爸的数字手机,考试成绩比较好,就会得到一些小奖励,玩手机游戏肯定也在其中首位,毕竟小孩子天性都喜欢~ 当时都能玩的不亦乐乎.今天,我们用Python编程一个贪吃蛇游戏哦~ 正文 1.将使用两个主要的类(蛇和立方体). #Snake Tutorial Python import math import random import pygame import tkinter as tk from tki

  • Spring + Spring Boot + MyBatis + MongoDB的整合教程

    前言 我之前是学Spring MVC的,后面听同学说Spring Boot挺好用,极力推荐我学这个鬼.一开始,在网上找Spring Boot的学习资料,他们博文写得不是说不好,而是不太详细. 我就在想我要自己写一篇尽可能详细的文章出来,下面话不多说了,来一看看详细的介绍吧. 技术栈 Spring Spring Boot MyBatis MongoDB MySQL 设计模式 MVC 功能 注册(用户完成注册后是默认未激活的,程序有个定时器在检测没有激活的用户,然后发一次邮件提醒用户激活) 登录 发

  • TypeScript保姆级基础教程

    目录 什么是 TypeScript? 那么 ts 和 js 有什么区别呢? 什么是类型注解? ts 的类型 联合类型: 类型别名 数组类型 函数 定义单个函数 统一定义函数格式 函数返回值类型void 函数-可选参数 可选和默认值的区别 对象类型-单独使用 对象类型-类型别名 接口 接口继承 元组 字面量类型 枚举 any 类型 使用any的场景 什么是 TypeScript? TypeScript,简称 ts,是微软开发的一种静态的编程语言,它是 JavaScript 的超集. 那么它有什么特

  • React项目仿小红书首页保姆级实战教程

    目录 前言 前期准备 项目预览 项目准备 工具 项目初始化 安装项目依赖 工程化src目录 api目录 assets目录 components目录 modules目录 pages目录,routes目录以及utils目录 页面设计思路 main.jsx App.jsx 搭建路由 首页组件分析 首页页面布局style.js Header组件 Footer组件 详情页页面分析 点赞效果实现 最后 前言 React 是一个用于构建用户界面的 Javascript库.主要用于构建UI,它起源于 Faceb

  • 新手必看Unity2019 2020保姆级安装教程

    1.通过UnityHub安装unity UnityHub下载路径,UnityHub安装按照步骤来就可以了. 打开UnityHub,点安装. 3.选择自己要安装的版本,由于unity2019以上的可以在选择组件的时候选择安装sdk和ndk,所以建议选择unity2019版本以上的.在导处apk文件的时候需要sdk和ndk. 4.如果自己没有安装vs,那么在这里可以选择添加给unity添加vs组件:因为我想开发Andriod游戏,所以我选了Android Build Support,并勾选sdk和n

  • 详解idea搭建springboot+mybatis框架的教程

    1.打开idea编译器,新建一个项目 2.选择Spring Initializr 勾选Default,完成之后点击[Next] 3.创建项目的文件目录结构以及选择jdk版本信息,设置完成后点击[Next] 4.选择项目所需要的依赖,在Web里面勾选Spring Web 在SQL里勾选需要的依赖,点击[Next] 5.修改项目名称,项目存放路径,点击[finish] 6.创建完成之后需要保持网络良好,因为需要加载刚才所选择的依赖(下载依赖可能需要很长时间,一定要在网络良好的情况下载,并且耐心等待)

  • RocketMQ整合SpringBoot实现生产级二次封装

    目录 前言说明 一.为什么要二次封装 1.1 二次封装不同观点 1.2 封装的抽离点 1.3 设计模式的应用 二.二次封装核心要点 2.1 二次封装核心点 2.1.1 封装主要讨论点 2.1.2 发送/消费的几种消息实体 2.2 RocketMQTemplate封装 2.2.1 封装基础实体类 2.2.2 RocketMQTemplate 3.2.3 增强RocketMQTemplate 2.3 RocketMQListener封装 2.4 广播消息的应用场景 2.3 代码封装完结测试 前言说明

  • KotlinScript构建SpringBootStarter保姆级教程

    目录 引言 一 如何用 Kotlin 写一个简单 SpringBoot Starter 1 分析 2 简单案例设计 3 代码实现 依赖项 配置属性声明类: xxxProperties 业务 Bean 配置类: xxxAutoConfiguration spring.factories 文件 json 配置注释文件 二 进阶: 复杂配置参数的写法 三 进阶: Starter 单元测试 依赖 配置文件 测试类 四 如何使用 Kotlin Script 构建成 Maven 依赖 五 集成测试 依赖 配

随机推荐