日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MyBatis Plus邏輯刪除和分頁插件使用詳解

瀏覽:153日期:2023-10-20 17:49:00

概要:Mybatis plus 官網(wǎng)鏈接 :https://mp.baomidou.com/guide/

一、依賴配置:

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatisplus-spring-boot-starter</artifactId> <version>1.0.5</version> </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>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.3.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>

二、數(shù)據(jù)源和插件相關配置

- application.yml

server: port: 8080 servlet: context-path: /# Logger Configlogging: level: com.baomidou.mybatisplus.samples.quickstart: debug

- db.properties

spring.datasource.jdbc-url = jdbc:mysql://localhost:3306/demo?serverTimezone=UTC&characterEncoding=utf8spring.datasource.username = rootspring.datasource.password = 123456spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver

- MybatisPlusConfig

package com.example.demo.config;import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;import org.mybatis.spring.annotation.MapperScan;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.transaction.annotation.EnableTransactionManagement;@EnableTransactionManagement@Configuration@MapperScan('com.example.demo.mapper')public class MybatisPlusConfig { @Bean('paginationInterceptor') public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true)); paginationInterceptor.setDbType(DbType.MYSQL); return paginationInterceptor; }}

- SqlSessionConfig

package com.example.demo.config;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;import org.apache.ibatis.plugin.Interceptor;import org.mybatis.spring.mapper.MapperScannerConfigurer;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.jdbc.DataSourceBuilder;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.PropertySource;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import javax.sql.DataSource;@Configuration@PropertySource('classpath:db/db.properties')public class SqlSessionConfig { private Logger logger = LoggerFactory.getLogger(SqlSessionConfig.class); @Bean('myDatasource') @ConfigurationProperties(prefix='spring.datasource') public DataSource masterDataSource() { return DataSourceBuilder.create().build(); } @Bean('mySqlSessionFactoryBean') public MybatisSqlSessionFactoryBean createSqlSessionFactory(@Qualifier('myDatasource') DataSource dataSource,@Qualifier('paginationInterceptor') PaginationInterceptor paginationInterceptor) { // MybatisSqlSessionFactory MybatisSqlSessionFactoryBean sqlSessionFactoryBean = null; try { // 實例SessionFactory sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean(); // 配置數(shù)據(jù)源 sqlSessionFactoryBean.setDataSource(dataSource); // 設置 MyBatis-Plus 分頁插件 Interceptor [] plugins = {paginationInterceptor}; sqlSessionFactoryBean.setPlugins(plugins); // 加載MyBatis配置文件 PathMatchingResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver(); sqlSessionFactoryBean.setMapperLocations(resourcePatternResolver.getResources('classpath*:mapper/*.xml')); } catch (Exception e) { logger.error('Init SqlSessionFactory Error:{}', e.getMessage()); } return sqlSessionFactoryBean; } @Bean public MapperScannerConfigurer myGetMapperScannerConfigurer() { MapperScannerConfigurer myMapperScannerConfigurer = new MapperScannerConfigurer(); myMapperScannerConfigurer.setBasePackage('com.example.demo.mapper'); myMapperScannerConfigurer.setSqlSessionFactoryBeanName('mySqlSessionFactoryBean'); return myMapperScannerConfigurer; }}

三、測試類

- UserController

package com.example.demo.controller;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.example.demo.bean.UserDTO;import com.example.demo.entity.User;import com.example.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import java.time.LocalDateTime;import java.util.List;@RestController@RequestMapping(value = '/demo')public class UserController { @Autowired private UserService userService; @RequestMapping(value = '/create', method = RequestMethod.POST) public String create(@RequestBody UserDTO userDTO){ User user = new User(); user.setName(userDTO.getName()); user.setPhone(userDTO.getPhone()); user.setCreateTime(LocalDateTime.now()); user.setEnable(true); user.setVersion(1L); userService.insert(user); return 'ok'; } @RequestMapping(value = '/delete', method = RequestMethod.POST) public String create(Long id){ userService.deleteById(id); return 'ok'; } @RequestMapping(value = '/update', method = RequestMethod.POST) public String update(@RequestBody UserDTO userDTO){ User user = new User(); user.setId(userDTO.getId()); user.setName(userDTO.getName()); user.setPhone(userDTO.getPhone()); user.setCreateTime(LocalDateTime.now()); userService.updateById(user); return 'ok'; } @RequestMapping(value = '/queryPage', method = RequestMethod.POST) public List<User> update(Integer pageNo, Integer pageSize){ Page<User> page = new Page<>(pageNo, pageSize); return userService.queryList(page, 1); }}

- UserService

package com.example.demo.service.impl;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.example.demo.mapper.UserMapper;import com.example.demo.entity.User;import com.example.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;import java.util.Optional;@Servicepublic class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public int insert(User user) { return userMapper.insert(user); } @Override public int deleteById(Long id) { return userMapper.deleteById(id); } @Override public int updateById(User user) { return userMapper.updateById(user); } @Override public List<User> queryList(Page<User> page, Integer enable) { return userMapper.selectPageByEnable(page, enable).getRecords(); }}

- UserMapper

package com.example.demo.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.example.demo.entity.User;import org.apache.ibatis.annotations.Mapper;import org.springframework.stereotype.Repository;@Mapper@Repositorypublic interface UserMapper extends BaseMapper<User> { IPage<User> selectPageByEnable(Page<?> page, Integer enable);}

- User

package com.example.demo.entity;import com.baomidou.mybatisplus.annotation.*;import lombok.Data;import java.time.LocalDateTime;@Data@TableName('user')public class User{ @TableId(value = 'id', type = IdType.AUTO) private Long id; @TableField('name') private String name; @TableField('phone') private String phone; @TableField('create_time') private LocalDateTime createTime; @TableLogic(delval = '0', value = '1') @TableField('enable') private boolean enable; @Version @TableField('version') private Long version;}

- SqlMap

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE mapper PUBLIC '-//mybatis.org//DTD Mapper 3.0//EN' 'http://mybatis.org/dtd/mybatis-3-mapper.dtd'><mapper namespace='com.example.demo.mapper.UserMapper'> <!-- 通用查詢映射結果 --> <resultMap type='com.example.demo.entity.User'> <id column='id' property='id' /> <result column='name' property='name' /> <result column='phone' property='phone' /> <result column='create_time' property='createTime' /> <result column='enable' property='enable' /> <result column='version' property='version' /> </resultMap> <select resultMap='BaseResultMap'> SELECT * FROM user WHERE enable=#{enable} order by create_time desc </select></mapper>

- DDL

CREATE TABLE `user` ( `id` bigint NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `phone` char(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, `enable` tinyint NOT NULL, `create_time` datetime NOT NULL, `version` bigint NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

到此這篇關于MyBatis Plus之邏輯刪除和分頁插件使用的文章就介紹到這了,更多相關MyBatis Plus邏輯刪除內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
99视频精品视频高清免费| 日本在线成人| 麻豆成人综合网| 精品一区二区三区中文字幕在线| 国产精品最新| 欧美影院精品| 日韩黄色免费网站| 国产欧美一区二区三区米奇| 久久久亚洲欧洲日产| 欧美丰满日韩| 亚洲a一区二区三区| 亚洲一级网站| 日韩中文字幕一区二区三区| 日韩一区二区三区四区五区 | 精品国产乱码久久久| 免费福利视频一区二区三区| 精品一区三区| 日本亚洲欧洲无免费码在线| 国产高清视频一区二区| 国产第一亚洲| 一区二区亚洲精品| 国产美女精品视频免费播放软件| 国产一区二区三区国产精品| 欧美二区视频| 欧美亚洲tv| 久久精品国内一区二区三区水蜜桃| 好看不卡的中文字幕| 国产精品密蕾丝视频下载| 成人羞羞视频播放网站| 综合亚洲视频| 中文在线а√天堂| 亚洲综合小说| yellow在线观看网址| 视频一区在线播放| 国产精品xxx在线观看| 成人午夜精品| 日韩动漫一区| 深夜视频一区二区| 欧美一区免费| 激情婷婷综合| 激情久久一区二区| 亚洲日本免费电影| 欧美精品高清| 国产亚洲欧美日韩精品一区二区三区| 午夜av成人| 国产精品亚洲四区在线观看| 91国语精品自产拍| 久草精品视频| 婷婷综合成人| 亚洲成av在线| 国产精品密蕾丝视频下载| 99视频精品免费观看| 麻豆精品在线视频| 亚洲精品乱码日韩| 在线日韩视频| 精品入口麻豆88视频| 久久亚洲一区| 视频福利一区| 欧美国产不卡| 日本综合视频| 美女尤物久久精品| 久久婷婷一区| 国产+成+人+亚洲欧洲在线| 亚洲精品第一| 亚洲一级高清| 黄色在线网站噜噜噜| 91九色综合| 亚洲我射av| 国产综合精品一区| 日韩中文影院| 亚洲精品成人图区| 国产aⅴ精品一区二区三区久久| 日韩成人午夜精品| 丝袜美腿亚洲色图| 亚洲欧洲一区二区天堂久久| 日韩精品一区二区三区免费观影| 国产伊人久久| 九九久久国产| 精品国产乱码| 精品中文在线| 国产一卡不卡| 国产精品久久久久久久久久齐齐 | 国产精品亚洲产品| 亚洲18在线| 中文字幕av一区二区三区人| 亚洲一区观看| 国产婷婷精品| 中文亚洲欧美| 性色av一区二区怡红| 在线一区视频| 老司机久久99久久精品播放免费| 亚洲人成在线网站| 香蕉成人av| 久久久噜噜噜| 999精品在线| 91精品婷婷色在线观看| 久久免费大视频| 好吊日精品视频 | 黄色成人91| 免费国产自线拍一欧美视频| 美女网站久久| 亚洲ww精品| 日韩成人一级| 蜜桃精品视频| 免费在线亚洲| 精品一区二区三区的国产在线观看| 精品国产一区二区三区噜噜噜| 久久精品毛片| 欧美不卡高清一区二区三区| 欧美精品一二| 亚洲网址在线观看| 国产欧美日韩一级| 精品久久久亚洲| 999久久久免费精品国产| 亚洲视频综合| 婷婷久久免费视频| 国产日韩精品视频一区二区三区| 欧美国产另类| 99视频精品全国免费| 久久夜色精品| 日本中文字幕视频一区| 国产精品99久久免费观看| 激情久久99| 欧美国产91| 日韩精品免费一区二区夜夜嗨| 国产精品亚洲片在线播放| av资源中文在线| 六月婷婷一区| 国产精品免费大片| 久久中文字幕av| 亚洲精品乱码日韩| 国产成人a视频高清在线观看| 久久一区二区中文字幕| 蜜桃视频第一区免费观看| 国产精品亚洲综合久久| 亚洲天堂资源| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产亚洲久久| 91精品国产91久久久久久黑人| 免费一区二区视频| 嫩草伊人久久精品少妇av杨幂| 精品在线91| 国产精品午夜av| 99成人超碰| 国产精品一区二区三区av| 日韩网站中文字幕| 日韩高清不卡在线| 麻豆精品蜜桃| 欧美亚洲一区二区三区| 日韩av免费大片| 国产精品日韩欧美一区| 美女视频一区在线观看| 国产亚洲精品久久久久婷婷瑜伽| 91精品在线免费视频| 亚洲性色视频| 国产精品免费大片| 视频一区二区欧美| 国产精品xx| 91精品国产自产观看在线| 日韩精品免费一区二区三区| 国产日韩欧美一区在线| 中文亚洲欧美| 91精品国产成人观看| 欧美极品一区二区三区| 免费的成人av| 国产一区二区三区不卡视频网站 | 在线观看一区| 国产成人在线中文字幕| 亚洲日本免费电影| 久久久亚洲一区| 欧美日韩伊人| 亚洲欧美日韩一区在线观看| 激情综合五月| 91大神在线观看线路一区| 亚洲性色视频| 91欧美日韩| 国产精品欧美一区二区三区不卡| 亚洲男女av一区二区| 国产精品成人a在线观看| 亚洲aⅴ网站| 国产亚洲激情| 在线天堂资源www在线污| 日韩一二三区在线观看| 欧美 日韩 国产一区二区在线视频| 欧美黄页在线免费观看| 午夜在线视频观看日韩17c| 成人国产综合| 欧美一级二级视频| 亚洲18在线| 国产农村妇女精品一区二区| 日韩精品永久网址| 久久只有精品| 日韩av中文字幕一区二区| 免费看的黄色欧美网站| 久久九九精品| 日韩久久一区二区三区| 色爱综合网欧美| 精品免费av一区二区三区| 国产日韩高清一区二区三区在线 | 成人小电影网站|