MybatisPlus y expansión de CRUD

Crear un simple artículo en MybatisPlus en un blog: procedimientos de entrada MybatisPlus

 

Una y ABM

1. seleccione

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);
 ​
 }

 

结果

 

 

Supongo que te gusta

Origin www.cnblogs.com/kzyuan/p/12642488.html
Recomendado
Clasificación