解析Mybatis-plus MP 中CRUD操作保姆级笔记
发布时间:2021-11-19 10:46 所属栏目:13 来源:互联网
导读:目录 一、什么是mybatis-plus1、在java中访问数据库2、Mybatis-plus简介3、Mybatis-plus特性二、第一个mybatis-plus开发1、使用MP的步骤: 前提:数据库/表创建2、mybatis-plus日志三、MP操作CRUD 的 基本用法1、添加数据后,获取主键值(MP可以自动实现主键
目录 一、什么是mybatis-plus1、在java中访问数据库2、Mybatis-plus简介3、Mybatis-plus特性二、第一个mybatis-plus开发1、使用MP的步骤: 前提:数据库/表创建2、mybatis-plus日志三、MP操作CRUD 的 基本用法1、添加数据后,获取主键值(MP可以自动实现主键回填)2、更新数据3、删除数据4、查询数据5、mybatis-plus中CRUD的底层实现原理 一、什么是mybatis-plus 1、在java中访问数据库 1. 直接使用jdbc,访问数据库,创建Connection,ResultSet 2. 把jdbc操作进行了封装,创建了很多工具类,比如DBUtil 3. 持久层框架 (1)hibernate:全程的ORM框架。 实现java object ---表的映射,操作java对象操作数据库表 可以使用hibernate访问不同的数据库,不需要改变代码 (2)jpa规范:hibernate open-jpa ,link(定义一样的方法操作数据库) (3)mybatis:编写xml文件,在xml中编写sql语句,访问数据库,任何操作都需要使用xml文件 需要熟悉sql语言,开发效率低一些,单表的CRUD也需要使用xml文件编写sql语句 (4)Mybatis-plus 简称MP,对mybatis的增强,在mybatis-plus之外加一层,单表操作 可以不使用xml文件,分页,性能统计,逻辑删除等。 2、Mybatis-plus简介 MyBatis-Plus(简称 MP )是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。Mybatis-Plus 在 MyBatis 之上套了一层外衣,单表 CURD 的操作几乎都可以由 MyBatis-Plus 代替执行。而且提供了各种查询方式,分页行为。作为使用者无需编写 xml,直接调用 MyBatis-Plus 提供的 API 就可以了。 官网:http://mp.baomidou.com/ 3、Mybatis-plus特性 1.无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 2.损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 3.强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作, 更有强大的条件构造器,满足各类使用需求 4.支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 5.支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence), 可自由配置,完美解决主键问题 6.支持 ActiveRecord 模式:支持 ActiveRecord 形式调用, 实体类只需继承 Model 类即可进行强大的 CRUD 操作 7.支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere ) 8.内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码, 支持模板引擎,更有超多自定义配置等您来使用 9.内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作, 配置好插件之后,写分页等同于普通 List 查询 10.分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库 11.内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询 12.内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作 二、第一个mybatis-plus开发 1、使用MP的步骤: 前提:数据库/表创建 CREATE TABLE USER ( id INT ( 11 ) NOT NULL AUTO_INCREMENT, NAME VARCHAR ( 50 ) DEFAULT NULL, email VARCHAR ( 80 ) DEFAULT NULL, age INT ( 11 ) DEFAULT NULL, PRIMARY KEY ( id ) ) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8; (1)新建的Spring Boot 工程 (2)指定maven的mp坐标 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency> (3)指定数据库的驱动 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> 在application.yml中进行配置数据库(数据库名plus) spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/plus?useSSL=false&serverTimezone=UTC username: root password: root (4)创建实体类 定义属性 指定主键的类型 public class User { /** * 指定主键的方式 * value:主键字段的名称,如果是id可以不用写 * type:指定主键的类型,主键的值如何生成:IdType.AUTO表示自动增长 */ @TableId(value ="id",type = IdType.AUTO) private Integer id; private String name; private String email; private Integer age; (5)创建dao接口,需要继承BaseMapper<实体.class> /** * @author 王恒杰 * @Description: * 自定义的mapper,dao接口 * 1.实现BaseMapper * 2.要指定实体类对象 * * BaseMapper是mybatis-plus的对象,定义了17个方法(crud) */ public interface UserMapper extends BaseMapper<User> { } (6)在springboot的启动类上,加入@MappperScan(value=“指定dao接口的包名”); /** * @author 王恒杰 * @MapperScan:扫描器,指定Mapper所在的包名 */ @SpringBootApplication @MapperScan(value = "com.tjcu.mapper") public class MybatisPlusApplication { public static void main(String[] args) { SpringApplication.run(MybatisPlusApplication.class, args); } } (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读