procedimientos de entrada MybatisPlus
Una y ABM
Encontrar Todos los usuarios 1.1
// comprobar @test pública vacío SELECT () { // consulta de todos los usuarios de la lista <usuario> Usuarios = userMapper.selectList ( nula ); users.forEach (el System.out :: el println); }
resultado
1.2 Búsqueda por ID
@Test pública vacío select () { // 查por id de usuario Usuario = userMapper.selectById (1 l ); System.out.println (usuario); }
resultado
2. inserto
2.1 proporcionada en la propiedad (incluyendo cuando el id)
// 增 @test público void insert () { usuario Usuario = nuevo usuario (6L, "ventosa", 12 "[email protected]" ); int i = userMapper.insert (usuario); Si (i = 0 ) { System.out.println ( "添加成功" ); Usuario userWindy = userMapper.selectById (user.getId ()); System.out.println ( "新用户名为:" + userWindy); } Demás System.out.println ( "添加失败" ); }
resultado
2.2 Modificada Marco sólo parcialmente (id no incluido)
@Test público void insert () { // usuario Usuario = nuevo usuario (6L, "ventosa", 12 "[email protected]"); Usuario usuario = nuevo usuario (); user.setName ( "viento" ); user.setAge ( 12 ); user.setEmail ( "[email protected]" ); int i = userMapper.insert (usuario); System.out.println (i); System.out.println ( "新用户为:" + usuario); }
resultado
Conde 2.3 Error
Automática sin valor se inserta, pero el 0 asigna ID , y luego una vez insertado en el error
org.springframework.dao.DuplicateKeyException
primer tiempo
segundo
Razón : la clase de entidad de Identificación del Usuario utilizando el tipo de datos original a largo
Resuelve : la larga cambiado envases largo
3. actualización
Observe el uso de updateById , ordenado por ID modificación
// 改 @test pública nula actualización () { usuario Usuario = nuevo usuario (6L, "Montado", 65 "[email protected]" ); int i = userMapper.updateById (usuario); Si (i = 0 ) { System.out.println ( "修改成功" ); Usuario userRidden = userMapper.selectById (user.getId ()); System.out.println ( "修改后用户为:" + userRidden); } Demás System.out.println ( "修改失败" ); }
resultado
4. eliminar
// 删 @test pública vacío delete () { int i = userMapper.deleteById (6 l ); Si (i = 0 ) { System.out.println ( "删除成功" ); Lista <usuario> = userMapper.selectList usuarios ( nula ); users.forEach (System.out :: println); } Demás System.out.println ( "删除失败" ); }
resultado
En segundo lugar, ampliar
1. seleccione
1.1 consulta por lotes
@Test pública vacío select () { // 查询1,2,3号用户 Lista <usuario> users = userMapper.selectBatchIds (Arrays.asList (1, 2, 3 )); users.forEach (System.out :: println); }
resultado
1.2 Condiciones consulta
@Test pública vacío selectByMap () { HashMap <String, Object> Mapa = nuevo HashMap <> (); // 自定义查询 map.put ( "Nombre", "Tom" ); List <usuario> = usuarios userMapper .selectByMap (mapa); users.forEach (System.out :: println); }
resultado
consulta 1.3 paginación
En la clase de configuración MybatisPlusConfig paginación añadido plug-in
// enchufe pestaña @Bean pública PaginationInterceptor paginationInterceptor () { volver nueva nueva PaginationInterceptor (); }
prueba
@Test pública vacío selectByPage () { página <usuario> = página nueva página <> (1,5 ); // actual:当前页 // tamaño:页面大小 userMapper.selectPage (página, nula ); . Page.getRecords () forEach (System.out :: println); }
resultado
2. eliminar
2.1 Eliminar lote
@Test públicos vacíos de eliminación () { // granel de borrado userMapper.deleteBatchIds (Arrays.asList (4L, 5L, 6L )); }
resultado
2,2 mapa suprime
@Test pública vacío deleteByMap () { HashMap <String, Object> Mapa = nuevo HashMap <> (); map.put ( "nombre", "Jack" ); userMapper.deleteByMap (mapa); }
resultado
2.3 lápida
-
Físicamente eliminar : Eliminar directamente de la base de datos
-
Tombstone : no se elimina en una base de datos, pero para inducir fallo (delete = 0 -> delete = 1) por una variable
Por ejemplo: El administrador puede ver el registro eliminado
Añadir base de datos de borrado
Usuario
package com.zy.pojo; import com.baomidou.mybatisplus.annotation.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; @Data @AllArgsConstructor @NoArgsConstructor public class User { //对应数据库的主键(UUID,自增id,雪花算法,redis,zookeeper) //@TableId(type = IdType.ID_WORKER) //全局唯一id @TableId(type = IdType.AUTO) //主键自增,对应数据库字段一定要自增 //@TableId(type = IdType.INPUT) //手动输入 private Long id; private String name; private Integer age; private String email; @TableLogic //逻辑删除 private Integer deleted; }
要点: @TableLogic
配置了添加逻辑删除插件
MybatisPlusConfig
//逻辑删除插件 @Bean public ISqlInjector sqlInjector() { return new LogicSqlInjector(); }
配置文件配置逻辑删除
application.properties
# 逻辑已删除值(默认为 1)
mybatis-plus.global-config.db-config.logic-delete-value= 1
# 逻辑未删除值(默认为 0)
mybatis-plus.global-config.db-config.logic-not-delete-value= 0
测试
@Test public void deleteLog(){ userMapper.deleteById(5L); }
结果
再查询被删用户
@Test public void select() { User user = userMapper.selectById(5L); System.out.println(user); }
结果