Mybatis-Plus | Utiliser Mybatis-Plus pour la requête de pagination

MyBatis-Plus (MP en abrégé) est un outil d'amélioration de MyBatis. Sur la base de MyBatis, il ne fait qu'améliorer et ne change pas. Il est né pour simplifier le développement et améliorer l'efficacité.
Caractéristiques de MyBatis-Plus:
Pas d'intrusion : seulement améliorer et ne pas changer, son introduction n'affectera pas le projet existant, il est aussi lisse que de la soie et la perte est faible: le CURD de base sera automatiquement injecté au démarrage, la performance est fondamentalement sans perte, et elle est directement orientée objet Exploitez de
puissantes opérations CRUD : mappeur général intégré, service général, seule une petite quantité de configuration peut réaliser la plupart des opérations CRUD d'une seule table, constructeur de conditions plus puissant, pour répondre à toutes sortes de besoins d'utilisation,
prise en charge de l'invocation de formulaire Lambda : via l'expression Lambda, Écrivez facilement toutes sortes de conditions de requête, pas besoin de vous soucier d'écrire de mauvais champs.
Prise en charge de la génération automatique de clé primaire : prise en charge de jusqu'à 4 stratégies de clé primaire (y compris le générateur d'ID unique distribué-Séquence), librement configurable et solution parfaite aux problèmes de clé primaire.
Prise en charge du mode ActiveRecord : Prise en charge de l'appel de formulaire ActiveRecord, les classes d'entité doivent uniquement hériter de la classe Model pour effectuer des opérations CRUD puissantes.
Prise en charge des opérations générales globales personnalisées : Prise en charge de l'injection de méthode générale globale (écriture unique, utilisation n'importe où)
Générateur de code intégré : utilisation du code ou du plug-in Maven Générez rapidement le mappeur, le modèle, le service, le code de couche de contrôleur, le moteur de modèle de prise en charge et d'autres configurations personnalisées, etc. Vous pouvez utiliser le
plug-in de pagination intégré : basé sur la pagination physique MyBatis, les développeurs n'ont pas besoin de se soucier d'opérations spécifiques. Après avoir configuré le plug-in, écrivez la pagination Equivalent à la requête de liste ordinaire
Le plug-in de pagination prend en charge une variété de bases de données : prend en charge MySQL, MariaDB, Oracle, DB2, H2, HSQL, SQLite, Postgre, SQLServer et d'autres
plug-ins d'analyse des performances intégrés aux bases de données : les instructions SQL et leur temps d'exécution peuvent être générés, il est recommandé d'activer cette fonction pendant le développement et les tests , Peut découvrir rapidement les requêtes lentes.
Plug-in d'interception globale intégré : fournit une analyse et un blocage intelligents des opérations de suppression et de mise à jour de table complète, et peut également personnaliser les règles d'interception pour éviter les mauvaises opérations

Un, la dépendance Maven

	<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>
    </dependencies>

2. Le fichier de configuration de base (application.properties)

# 端口
server.port=8081
# 上下文
server.servlet.context-path=/swagger
# 驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# url
spring.datasource.url=jdbc:mysql://localhost:3306/excel?useUnicode=true&characterEncoding=utf-8
# 用户名
spring.datasource.username=root
# 密码
spring.datasource.password=123456
# 映射文件文件路径
mybatis-plus.mapper-locations=classpath:/com/jonsson/dao/*Dao.xml
# 类型别名
mybatis-plus.type-aliases-package=com.jonsson.entity
# 打印sql
logging.level.root.com.jonsson.dao=debug

Trois, objet d'intercepteur de pagination de registre d'extension MVC (MybatisPlusConfig)

@Configuration
@Slf4j
public class MybatisPlusConfig {
    
    
    @Bean
    public PaginationInterceptor paginationInterceptor() {
    
    
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        log.debug("配置mybatis-plus分页插件");
        // 方言
        paginationInterceptor.setDialectType("mysql");
        return paginationInterceptor;
    }
}

Quatre, classe d'entité d'entité

@Data
public class Car {
    
    
    private Integer id;
    private String name;
    private Integer price;
    private String colour;
    private String brand;
}

Cinq, interface dao

@Repository
@Mapper
public interface CarDao extends BaseMapper<Car> {
    
    

}

Six, interface de service et classe d'implémentation

public interface CarService {
    
    
    public IPage<Car> findAll();
}
@Service
public class CarServiceImpl implements CarService {
    
    
    @Autowired
    private CarDao carDao;

    @Override
    public IPage<Car> findAll() {
    
    
    	// 第一个参数是当前页,第二个参数是页大小
        Page<Car> carPage = new Page<>(1, 2);
        return carDao.selectPage(carPage, null);
    }
}

Seven, contrôleur

@RestController
@Slf4j
public class CarController {
    
    
    @Autowired
    private CarService carService;

    @RequestMapping("/carPage")
    public ResultVO<Object> carPage() {
    
    
        IPage<Car> carIPage = carService.findAll();
        log.debug(carIPage.toString());
        if (carIPage.getRecords().size() > 0) {
    
    
            return ResultVOUtils.success(carIPage.getRecords());
        } else {
    
    
            return ResultVOUtils.error("错误");
        }
    }
}

(、 Vo (ResultVO)

@Data
public class ResultVO<T> {
    
    
    private Integer code;
    private String msg;
    private T data;
}

Neuf, util (ResultVOUtils)

public class ResultVOUtils {
    
    
    public static ResultVO<Object> success(Object object) {
    
    
        ResultVO<Object> objectResultVO = new ResultVO<>();
        objectResultVO.setCode(0);
        objectResultVO.setMsg("成功");
        objectResultVO.setData(object);
        return objectResultVO;
    }

    public static ResultVO<Object> success() {
    
    
        ResultVO<Object> objectResultVO = new ResultVO<>();
        objectResultVO.setCode(0);
        objectResultVO.setMsg("成功");
        objectResultVO.setData(null);
        return objectResultVO;
    }

    public static ResultVO<Object> error(String msg) {
    
    
        ResultVO<Object> objectResultVO = new ResultVO<>();
        objectResultVO.setCode(1);
        objectResultVO.setMsg(msg);
        return objectResultVO;
    }
}

Neuf, script de base de données

DROP TABLE IF EXISTS `car`;
CREATE TABLE `car` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(255) DEFAULT NULL COMMENT '名称',
  `price` int(11) DEFAULT NULL COMMENT '价格',
  `colour` varchar(255) DEFAULT NULL COMMENT '颜色',
  `brand` varchar(255) DEFAULT NULL COMMENT '品牌',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='汽车';
LOCK TABLES `car` WRITE;
INSERT INTO `car` VALUES (1,'丰田',100,'黑色','丰田'),(2,'大众',150,'白色','大众'),(3,'东风',120,'蓝色','东风'),(4,'凯迪拉克',150,'黑色','凯迪拉克'),(5,'奥迪',200,'红色','奥迪'),(6,'凯迪拉克',150,'黑色','凯迪拉克'),(7,'奥迪',200,'红色','奥迪'),(8,'宝马',300,'灰色','宝马');
UNLOCK TABLES;

Demande de résultat

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/y1534414425/article/details/105638684
conseillé
Classement