springboot中整合mybatis及简单使用
springboot中整合mybatis及简单使用
- 1.引入依赖
- 2.在applicaiton.yaml中配置数据源以及mybatis
- 3.创建sql测试表
- 4.编写mapper接口和mapper.xml文件
- 4.1 mapper接口
- 4.2 mapper.xml
- 4.3 mybatisX快速开发插件
- 5.创建service层和controller层
- 5.1 创建service层
- 5.2 创建controller层
- 6.项目结构及运行测试
- 6.1 项目结构
- 6.2 运行测试
- 7.小结
1.引入依赖
引入mybatis提供的stater,以及druid数据源和mysql驱动器和lombok依赖:
<!-- mysql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version></dependency><!-- druid 数据源--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.17</version></dependency><!-- mybatis第三方stater --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version></dependency><!-- lombok插件依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>
lombok插件:
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build>
2.在applicaiton.yaml中配置数据源以及mybatis
在application.yaml中配置数据源,以及mybatis:
# 数据源配置
spring:datasource:url: jdbc:mysql://localhost:3306/phpdemo?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=falseusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver# mybatis整合
mybatis:#config-location: classpath:mybatis/mybatis-config.xml # 指定mybatis-config.xml全局配置文件的位置,可以不写mapper-locations: mapper/* # 指定mapper.xml配置文件的位置configuration:map-underscore-to-camel-case: true # 开启下划线转驼峰命名
通过 mybatis.mapper.locations来指定mapper.xml映射文件的位置,mybatis-config.xml可以不指定位置(也不创建)。
3.创建sql测试表
创建一个Book表:
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for book
-- ----------------------------
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book` (`id` int(0) NOT NULL AUTO_INCREMENT,`bookName` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,`bookPrice` decimal(10, 2) NOT NULL,`author` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of book
-- ----------------------------
INSERT INTO `book` VALUES (1, '平凡的世界', 59.00, '路遥');
INSERT INTO `book` VALUES (2, '三体', 99.00, '刘慈欣');
INSERT INTO `book` VALUES (3, '人间失格', 44.00, '太宰治');
INSERT INTO `book` VALUES (4, '白夜行', 38.00, '东野圭吾');SET FOREIGN_KEY_CHECKS = 1;
4.编写mapper接口和mapper.xml文件
4.1 mapper接口
在springboot中,使用@Mapper注解来标识一个接口为mapper接口,也可以通过在主启动程序上使用@MapperScan(“com.robin.boot.mapper”)的方式来扫描指定的包为mapper接口的包。
这里我使用第一种方式,通过@Mapper注解来标识接口:
package com.robin.boot.mapper;import com.robin.boot.bean.Book;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper // 在springboot中通过 @Mapper注解来标识一个接口为mapper接口
public interface BookMapper {// 查询所有书籍public List<Book> queryAllBook();// 根据id查询单本书public Book findBookById(Long id);}
4.2 mapper.xml
在类资源路径下,创建对应的mapper.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.robin.boot.mapper.BookMapper"><!-- public List<Book> queryAllBook(); --><select id="queryAllBook" resultType="com.robin.boot.bean.Book">select * from phpdemo.book</select><!-- public Book findBookById(Long id); --><select id="findBookById" resultType="com.robin.boot.bean.Book">select * from phpdemo.book where id = #{id}</select></mapper>
4.3 mybatisX快速开发插件
推荐安装一个mybatisX插件,这样可以方便的跳转mapper接口和对应的xml配置文件
如下图,当mapper.xml与mapper接口绑定时,会有小鸟图标显示,开发很方便观察
5.创建service层和controller层
5.1 创建service层
mvc三层架构的方式:service层包括sevice接口和对应实现类serviceImpl
service接口:
package com.robin.boot.service;import com.robin.boot.bean.Book;
import java.util.List;public interface BookService {// 查询所有书籍public List<Book> queryAllBook();// 根据id查询单本书public Book findBookById(Long id);}
serviceImgl实现类:
package com.robin.boot.service.impl;import com.robin.boot.bean.Book;
import com.robin.boot.mapper.BookMapper;
import com.robin.boot.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class BookServiceImpl implements BookService {@Autowired // 自动注入BookMapper bookMapper;@Overridepublic List<Book> queryAllBook() {return bookMapper.queryAllBook();}@Overridepublic Book findBookById(Long id) {return bookMapper.findBookById(id);}}
5.2 创建controller层
编写controller以及请求映射,这里为了方便,我就直接通过返回字符串json数据来响应请求,不去编写对应的html页面了
controller:
package com.robin.boot.controller;import com.robin.boot.bean.Book;
import com.robin.boot.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.List;@Controller
public class BookController {@AutowiredBookService bookService;@ResponseBody // 以json的格式返回数据@GetMapping("/allBook")public String queryAllBook(){// 调用service层来查询所有书籍数据List<Book> books = bookService.queryAllBook();// 为了演示,简单的将其返回字符串return books.toString();}@ResponseBody@GetMapping("/book/{id}")public String findBookById(@PathVariable("id") Long id){Book book = bookService.findBookById(id);return book.toString();}}
6.项目结构及运行测试
6.1 项目结构
6.2 运行测试
查询所有书籍 localhost:8080/allBook
查询单本书籍localhost:8080/book/id号
7.小结
在springboot中整合使用mybatis很方便,只要引入对应的stater,然后在application.yaml或者application.properties配置文件中进行配置即可(配置对应的mapper.xml的路径,还有很多配置,可以参考对应的官方文档),注意使用mapper接口时通过@Mapper注解标识,或者通过@MapperScan注解扫描对应的mapper包。
springboot中整合mybatis及简单使用相关推荐
- springboot项目整合mybatis
SpringBoot项目整合mybatis 本章内容 使用 idea创建 SpringBoot项目 SpringBoot项目中配制 mybatis 框架 1 创建 SpringBoot项目 1.1 在 ...
- SpringBoot中关于Mybatis使用的三个问题
SpringBoot中关于Mybatis使用的三个问题 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/8495453.html 原本是要讲讲PostgreSQL ...
- 【SpringBoot】22、SpringBoot中整合knife4j接口文档
在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护 接口文档使得项目开发过程中前后端工程师 ...
- springboot中的mybatis是如果使用pagehelper的
springboot中的mybatis是如果使用pagehelper的 springboot中使用其他组件都是基于自动配置的AutoConfiguration配置累的,pagehelper插件也是一样 ...
- 【SpringBoot】43、SpringBoot中整合RabbitMQ实现延时队列(延时插件篇)
死信队列实现篇,参考文章:[SpringBoot]60.SpringBoot中整合RabbitMQ实现延时队列(死信队列篇) 一.介绍 1.什么是延时队列? 延时队列即就是放置在该队列里面的消息是不需 ...
- 在SpringBoot中整合使用Netty框架提供WebSocket服务
在SpringBoot中整合使用Netty框架 Netty是一个非常优秀的Socket框架.如果需要在SpringBoot开发的app中,提供Socket服务,那么Netty是不错的选择. Netty ...
- 【SpringBoot】27、SpringBoot中整合Ehcache实现热点数据缓存
EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider.用惯了 Redis,很多人可能已经忘记了还有 EhCache ...
- SpringBoot中使用mybatis/ibatis日志打印sql
SpringBoot中使用mybatis/ibatis时日志打印sql 控制台打印mybatis/ibatis对应的sql 主机的日志文件中打印mybatis/ibatis对应的sql 控制台打印my ...
- SPRINGBOOT中如何运用JPA,简单例子
SPRINGBOOT中如何运用JPA,简单例子 步骤 1 : JPA概念顶折 JPA(Java Persistence API)是Sun官方提出的Java持久化规范,用来方便大家操作数据库. 真正干活 ...
最新文章
- form表单提交编码的问题
- SharePoint 2010 内容编辑器Web部件的使用方法
- Freemarker基于模板字符串生成静态化html文件
- [译] APT分析报告:09.伊朗APT34更新武器库——SideTwist变体
- 【Linux】一步一步学Linux——consoletype命令(247)
- 怎么画正五边形步骤_悄悄告诉你们:一种没有美术基础,也能画好画的方法
- 将shell命令结果直接输出到HDFS上
- 三、Eclipse快捷键
- Nginx安装手册(摘自入云龙老师教案,亲测可用)
- LeetCode 153 寻找旋转排序数组中的最小值
- Tensorflow并行计算:多核(multicore),多线程(multi-thread),计算图分割(Graph Partition)
- 基于windows使用fabric将gitlab的文件远程同步到服务器(本地)
- DTCC 2020 PDF(共77个)丨2020中国数据库技术大会文档分享
- redis设置密码和其它服务器连接
- 考研数学三考摆线吗_考研数学草稿纸发几张?可以多打几张准考证当草稿纸用吗?...
- 如何用Chrome自带的截屏功能截取超过一个屏幕的网页 1
- c语言系统主函数流程图,c语言流程图【调解方式】
- 手机的红外线功能有可能淘汰
- webrtc android 声音处理,WebRTC 安卓有视频无声音问题解决
- java 读取Excel数据(POI)(一个sheet或者多个sheet)
热门文章
- 洛谷P1150 Peter的烟(逻辑建模)
- WebRTC学习06----1对1视频通信实例
- 面向对象设计的3个基本特征和5个原则
- 解决:远程连接mysql:报异常,1044 - Access denied for user ‘root‘@‘%‘ to database ‘xxxxxx‘
- Docker容器启动参数大全与详细说明
- 计算机毕业设计开题报告基于SpringBoot的校淘二手网站
- python中bool啥意思_python中的bool是什么意思
- C# 如何避免装箱和拆箱操作
- 查询计算机系统操作工,计算机系统操作工B卷
- error while loading shared libraries: libopencv_imgcodecs.so.405: cannot open shared object file