總結:目前升級僅發現依賴有變更,其他目前未發現,如有發現,后續會繼續更新
由于項目架構提升,以前開發的很多公共的組件,以及配置都需要升級,因此記錄需要更改的配置(記錄時間:2025年-04月),通過查看官方文檔https://baomidou.com/getting-started/,知道主要的改動點有,maven依賴變更,分頁變更。
然而如果只單獨引用MyBatis-Plus的以來,會報以下錯誤
PaginationInnerInterceptor cannot be resolved to a type
官方文檔說明:于 v3.5.9 起,PaginationInnerInterceptor 已分離出來。如需使用,則需單獨引入 mybatis-plus-jsqlparser 依賴
1項目結構
2SpringBoot版本
SpringBoot版本及Java版本如下
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.10</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.mybatis-plus-demo</groupId><artifactId>demo</artifactId><properties><java.version>17</java.version></properties>
3maven依賴
<dependencies><!-- Spring web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- mysql --><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><!-- mybatis-plus https://baomidou.com/getting-started/ --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.11</version></dependency><!-- mybatis-plus于 v3.5.9 起,PaginationInnerInterceptor 已分離出來。如需使用,則需單獨引入 mybatis-plus-jsqlparser 依賴 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-jsqlparser</artifactId><version>3.5.11</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies>
代碼
MybatisPlusConfig配置掃包路勁,以及分頁插件
/** @Description: mybatis配置* @author: 胡濤* @mail: hutao1@epri.sgcc.com.cn* @date: 下午12:14:22*/
@Configuration
@MapperScan("com.example.demo.**.mapper")
public class MybatisPlusConfig {/** @Description: 配置mybatis插件* @author: 胡濤* @mail: hutao1@epri.sgcc.com.cn* @date: 下午12:14:15*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 如果配置多個插件, 切記分頁最后添加interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果有多數據源可以不配具體類型, 否則都建議配上具體的 DbTypereturn interceptor;}
}
使用MyBatis-Plus進行分頁查詢
@RestController
@RequestMapping("/sysOrg")
public class SysOrgController {@Autowiredprivate ISysOrgService sysOrgService;@GetMapping("/info/page/{pageNum}/{pageSize}")public ResponseEntity<IPage<SysOrg>> pageSysOrgInfo(@PathVariable Integer pageNum, @PathVariable Integer pageSize) {QueryWrapper<SysOrg> query = new QueryWrapper<>();query.eq("org_type", "1");IPage<SysOrg> page = new Page<SysOrg>(pageNum, pageSize);IPage<SysOrg> pageData = sysOrgService.page(page, query);ResponseEntity<IPage<SysOrg>> res = new ResponseEntity<>(pageData, HttpStatus.OK);return res;}
}
查詢結果實例。