SpringBoot(五)整合Mybatis-Plus
整合Mybatis-Plus
导入依赖
<!--mybatis-plus启动器-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version>
</dependency>
<!-- 数据库驱动 -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version></dependency>
安装Lombok
插件
配置编码
配置
application.yaml
文件spring:#配置数据库datasource:# 配置连接数据库信息driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8username: rootpassword: 123456 mybatis-plus:# 配置MyBatis日志configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #全局配置global-config:db-config:#配置统一的主键策略为自增,如果不设置默认为雪花算法id-type: auto# 设置实体类所对应的表的统一前缀,为实体类所对应的表名设置默认的前缀table-prefix: t_ #配置mapper映射文件路径,名字要和mapper接口名字一致 这是默认路径不写也行mapper-locations: classpath*:/mapper/**/*.xml #配置类型别名所对应的包type-aliases-package: com.yka.boot02mybatis_plus.pojo # 扫描通用枚举的包type-enums-package: com.yka.boot02mybatis_plus.enums
创建一个config包创建配置类,添加@MapperScan` 注解,扫描 Mapper 文件夹 添加@Configuration注解**
@Configuration //告诉SpringBoot这是一个配置类 == spring配置文件 @MapperScan("com.yka.boot02mybatis_plus.mapper")//扫描接口包 在当前配置类(spring.xml)中填写注解最合适 //配置mapper接口的扫描配置 //由mybatis-spring提供,可以将指定包下所有的mapper接口创建代理实现类 //并将这些动态代理作为IOC容器的bean管理,接口就可以自动装配了,直接可以调用接口中的方法 public class MyConfig { }
编写实体类
User.java
(此处使用了 Lombok 简化代码)@Data//自动提供get set方法、tosString方法,equals方法 @AllArgsConstructor//有参构造器 @NoArgsConstructor//无参构造器 @TableName("user")//绑定表 yaml文件中设置了全局配置这里可以不用注解了 yaml文件配置文件中:db-config:table-prefix: t_ public class User {private Long id;private String name;private Integer age;private String email; }
编写 Mapper 包下的
UserMapper
接口1.BaseMapper<T>
说明:
通用 CRUD 封装BaseMapper 接口,为
Mybatis-Plus
启动时自动解析实体表关系映射转换为Mybatis
内部对象注入容器泛型
T
为任意实体对象参数
Serializable
为任意类型主键Mybatis-Plus
不推荐使用复合主键约定每一张表都有自己的唯一id
主键对象
Wrapper
为条件构造器
MyBatis-Plus中的基本CRUD在内置的BaseMapper中都已得到了实现,因此我们继承该接口以后可以直接使用。
本次演示的CRUD操作不包含参数带有条件构造器的方法,关于条件构造器将单独在一个章节进行演示。BaseMapper中提供的CRUD方法:
// 在对应的Mapper上面继承基本的类 BaseMapper,就能直接用BaseMapper接口里面的sql语句了 //MyBatis-Plus中的基本CRUD在内置的BaseMapper中都已得到了实现,因此我们继承该接口以后可以直接使用。 @Repository // 代表持久层 public interface UserMapper extends BaseMapper<User> { // 所有的CRUD操作都已经编写完成了 // 你不需要像以前的配置一大堆文件了! @Select("select * from user where id = #{id}")public User selById(Integer id); }
测试查询
编写一个测试类
MyBatisPlusTest.java
@SpringBootTest public class MyBatisPlusTest {@Resourceprivate UserMapper userMapper; /*** 测试查询所有数据*/@Testvoid testSelectList(){//通过条件构造器查询一个list集合,若没有条件,则可以设置null为参数List<User> users = userMapper.selectList(null);users.forEach(System.out::println);} }
控制台打印查询结果
SpringBoot(五)整合Mybatis-Plus相关推荐
- springboot项目整合mybatis
SpringBoot项目整合mybatis 本章内容 使用 idea创建 SpringBoot项目 SpringBoot项目中配制 mybatis 框架 1 创建 SpringBoot项目 1.1 在 ...
- springboot中整合mybatis及简单使用
springboot中整合mybatis及简单使用 1.引入依赖 2.在applicaiton.yaml中配置数据源以及mybatis 3.创建sql测试表 4.编写mapper接口和mapper.x ...
- 玩转springboot:整合mybatis实例
这篇文章讲解一下springboot整合mybatis,其实,springboot整合mybatis和springmvc整合mybatis并没有什么太大的区别,大体上还是差不多哦,只是比springm ...
- Springboot轻松整合Mybatis
在springboot没有出现之前,spring整合mybatis是相当麻烦,各种bean配置,现在我们来感受一下Springboot整合Mybatis是有多么方便 先来看看效果 添加用户: 查询用户 ...
- java xml快捷注释_详解SpringBoot 快速整合Mybatis(去XML化+注解进阶)
序言:使用MyBatis3提供的注解可以逐步取代XML,例如使用@Select注解直接编写SQL完成数据查询,使用@SelectProvider高级注解还可以编写动态SQL,以应对复杂的业务需求. 一 ...
- springboot之整合mybatis
第一次搞,真的是花了老大的经历了,各种字段敲错了. 记录一下过程: 首先添加依赖: <dependency><groupId>org.mybatis.spring.boot&l ...
- springboot/springcloud整合mybatis(mysql)
1.导入相关jar包 <!-- mysql客户端 --> <dependency><groupId>mysql</groupId><artifac ...
- SpringBoot精藏(五)SpringBoot整合mybatis
本文主要讲解如何在springboot下整合mybatis,并访问数据库.由于mybatis这个框架太过于流行,所以我就不讲解了. 引入依赖 在pom文件引入mybatis-spring-boot-s ...
- springboot 整合mybatis plus
简单介绍下 mybatis plus,mybatis plus(简称 MP)是一个 mybatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 本文讲解使用 ...
- 详解SpringBoot整合Mybatis框架
文章目录 前言 一.创建SpringBoot项目 二.配置Mybatis 1. 在pom.xml文件中添加jar包依赖 2. SpringBoot整合Mybatis配置文件 三.创建Mapper接口 ...
最新文章
- android relativelayout 点击事件,Android Relativelayout点击背景行为
- C 指针常量 和常量指针 指向常量的指针常量的使用
- 【Lucene】Lucene的工作原理
- CUDA在Debug下编译有错而Release下无错
- java中如果需要返回多个值怎么办
- 《神经网络和深度学习》系列文章五:用简单的网络结构解决手写数字识别
- python logger_Python:logging 的巧妙设计!
- 可空类型 (C# 编程指南)
- 计算机无法识别佳能70d相机,佳能相机常见的错误代码和解决方案-万兴恢复专家...
- Web前端:HTML5 CSS3
- 2020中山大学计算机学院保研,我校举行中山大学2020级研究生招生宣讲会
- 0x00000001java_「十六进制表示」0x00000001是个啥?32位表示、十六进制表示 - seo实验室...
- FME将用SHP数据对栅格影像数据进行裁剪
- 【应用】Markdown 在线阅读器
- Rstudio手动安装程序包
- 【尚硅谷】新web项目-QQZone代码及详细解析
- 情感分析的一些专业术语
- 哪些是MySQL用于放置一些头文件的目录_下面选项中,哪些是MySQL用于放置一些头文件的目录?...
- 笔记本电脑移动办公平台网络解决方案
- 学习UI设计后的就业岗位、薪资大揭秘!
热门文章
- 铰削和铰刀的基本概念
- 微信,支付宝,收款二维码实时生成订单监控,免签支,付支付系统,个人收款,收款二维码...
- 如何定位crach问题
- Mac下添加Chrome插件
- 22.11.30打卡 记忆化搜索2水题
- 计算机如何开启多个用户,电脑上如何打开多个微信账号?
- 【软考 系统架构设计师】计算机组成与体系结构⑥ 流水线
- 案例分享:Qt激光加工焊接设备信息化软件研发(西门子PLC,mysql数据库,用户权限控制,界面设计,参数定制,播放器,二维图,期限控制,参数调试等)
- 3D建模软件大总结,你都知道哪些?
- 局域网局域网架构简介