Descripción general de MyBatis-Plus y primeros pasos
1. Introducción
¿Qué es? ¡MyBatis está destinado a simplificar las operaciones de JDBC! ¡Simplifique MyBatis!
2. Características
- Sin intrusión : solo mejore y no cambie, la introducción no afectará el proyecto existente, es tan suave como la seda
- Pérdida baja : CURD básico se inyectará automáticamente al inicio, el rendimiento es básicamente sin pérdida, operación directa orientada a objetos
- Potentes operaciones CRUD : mapeador general integrado, servicio general, solo una pequeña cantidad de configuración puede realizar la mayoría de las
operaciones CRUD de una sola tabla y un generador de condiciones más potente para satisfacer diversas necesidades de uso - Admite llamadas de formulario Lambda : a través de expresiones Lambda, puede escribir fácilmente todo tipo de condiciones de consulta, sin necesidad de preocuparse por escribir campos incorrectos
- Admite la generación automática de clave primaria : admite hasta 4 estrategias de clave primaria (incluida una secuencia de generador de ID única distribuida), que se puede configurar libremente, lo que resuelve perfectamente el problema de la clave primaria
- Admite el modo ActiveRecord : admite la llamada al formulario ActiveRecord, las clases de entidad solo necesitan heredar la clase Model para realizar potentes
operaciones CRUD - Admite operaciones generales globales personalizadas : admite la inyección de métodos generales globales (escribe una vez, usa en cualquier lugar)
- Generador de código incorporado : use el código o el complemento Maven para generar rápidamente Mapper, Model, Service, Controller
layer code, support template engine y más configuraciones personalizadas para su uso. - Complemento de paginación incorporado : basado en la paginación física de MyBatis, los desarrolladores no necesitan preocuparse por operaciones específicas. Después de configurar el complemento, escribir paginación es equivalente a una consulta de lista normal.
- El complemento de paginación admite múltiples bases de datos : admite MySQL, MariaDB, Oracle, DB2, H2, HSQL, SQLite, Postgre, SQLServer y otras bases de datos
- Complemento de análisis de rendimiento incorporado : se puede generar una declaración SQL y su tiempo de ejecución. Se recomienda habilitar esta función durante el desarrollo y las pruebas para detectar rápidamente consultas lentas
- Complemento de interceptación global incorporado : proporciona un análisis inteligente y bloqueo de las operaciones de eliminación y actualización de toda la tabla, y también puede personalizar las reglas de interceptación para evitar errores de operación.
Tres, inicio rápido
Dirección: https://mp.baomidou.com/guide/quick-start.html Proyecto de inicialización
Pasos:
1. Cree la base de datos mybatis_plus
2. Cree la tabla de usuarios
DROP TABLE IF EXISTS user;
CREATE TABLE user
(
id BIGINT(20) NOT NULL COMMENT '主键ID',
name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
age INT(11) NULL DEFAULT NULL COMMENT '年龄',
email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (id)
);
DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, '[email protected]'),
(2, 'Jack', 20, '[email protected]'),
(3, 'Tom', 28, '[email protected]'),
(4, 'Sandy', 21, '[email protected]'),
(5, 'Billie', 24, '[email protected]');
-- 真实开发中,version(乐观锁)、deleted(逻辑删除)、gmt_create、gmt_modified
3. ¡Escriba el proyecto e inicialice el proyecto! ¡Utilice SpringBoot para inicializar!
4. Importar dependencias
SpringBoot:
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- mybatis-plus --> <!-- mybatis-plus 是自己开发,并非官方的! -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
SpringMVC
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.4.2</version>
</dependency>
注意
: Usamos mybatis-plus para ahorrarnos mucho código. Después de introducir MyBatis-Plus, no vuelva a introducir MyBatis y MyBatis-Spring para evitar problemas causados por diferencias de versión.
5. ¡Conéctese a la base de datos! ¡Este paso es el mismo que mybatis!
# mysql 5 驱动不同 com.mysql.jdbc.Driver
# mysql 8 驱动不同com.mysql.cj.jdbc.Driver、需要增加时区的配置 serverTimezone=GMT%2B8
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatisplus?useSSl=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
username: root
password: "081020"
driver-class-name: com.mysql.cj.jdbc.Driver
Forma tradicional domain-dao (conectarse a mybatis, configurar el archivo mapper.xml) -service-controller
6. Después de usar mybatis-plus
- dominio
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
- interfaz de mapeador
// 在对应的Mapper上面继承基本的类 BaseMapper
@Repository // 代表持久层
public interface Usermapper extends BaseMapper<User> {
// 所有的CRUD操作都已经编写完成了
// 你不需要像以前的配置一大堆文件了
}
注意
: Necesitamos escanear todas las interfaces bajo nuestro paquete de mapeador en la clase de inicio principal @MapperScan ("com.latte.mapper")
- Prueba en la clase de prueba
@Autowired
// 继承了BaseMapper,所有的方法都来自己父类
// 我们也可以编写自己的扩展方法!
private Usermapper usermapper;
@Test
void contextLoads() {
// 参数是一个 Wrapper ,条件构造器,这里我们先不用 null
// 查询全部用户
List<User> users = usermapper.selectList(null);
for (User user : users) {
System.out.println(user);
}
}
- resultado
1. ¿Quién nos ayudó a escribir SQL? MyBatis-Plus ha sido escrito
2. ¿De dónde vino el método? MyBatis-Plus ha sido escrito