Excel2016打印預覽表格的教程是什么(excel2016怎么看打印預覽)">Excel2016打印預覽表格的教程是什么(excel2016怎么看打印預覽)
1250
2025-04-02
一、MybatisPlus簡介
MyBatis-Plus (簡稱 MP)是一個 MyBatis 的增強工具,在 MyBatis 的基礎上只做增強不做改變,為簡化開發(fā)、提高效率而生。
Mybatis-Plus是一個國產(chǎn)框架,有中文的文檔,所以使用起來還是很方便的,沒有那么大的障礙。
文檔地址:baomidou.com/
當前的最新版本是3.5.1
文檔上說的十分清楚,這里我就不多說了。直接進入集成步驟。
二、集成步驟
我們首先拉取一個feature/mybatisPlus的分支,在這個分支上演示springboot集成MybatisPlus的用法。
1. 引入 依賴
其中mybatis-plus-boot-starter是核心的應用包
mybatis-plus-generator和 freemarker是用來逆向生成的,通過逆向生成的工具類,可以幫助我們生成相應的實體,mapper, service,controller。基本可以實現(xiàn)近乎0代碼開發(fā)單表的增刪改查。
2. 逆向生成
我們接下來就先演示一下mybatis-plus的逆向生成功能。所謂逆向工程,是根據(jù)數(shù)據(jù)庫的表結(jié)構(gòu)來幫助我們生成代碼,所以我們要先保證數(shù)據(jù)庫中的表是已經(jīng)建立完畢的。
所謂逆向工程,其實就是一個工具類。我們把這個類直接放到我們的工程下,然后配置相關(guān)的數(shù)據(jù)庫連接和生成的目錄位置,和要生成的表即可,執(zhí)行完畢后,就可以直接生成我們所需要的類。
新版本的MybatisPlus自動生成的方式和舊版本的不太一樣,大家使用的時候要注意,這一點在官方文檔上已經(jīng)做了具體說明。
baomidou.com/pages/779a6…
這里由于我們使用的是最新的版本,所以采用新版本的生成方式。
我們在項目下創(chuàng)建一個utils的包,然后加入我們的工具類 MybatisPlusGenerator,具體內(nèi)容如下。
同時需要設置相應的報名,模塊名和忽略的表名前綴。 addInclude方法里可以多個表名,用于設置為哪些表自動生成,也可以不設置,不設置的話默認會給當前庫中的所有表生成相應代碼。
通過上面的代碼運行后自動生成的controller, service, mapper默認位于 com.lsqingfeng.springboot下的controller, service, mapper表下。 mapper對應的xml文件位于 resources/mapper文件夾下。這些內(nèi)容也都是可以進行修改的。
生成好的文件默認情況如下;
3. 添加配置
逆向生成完畢,我們mybatis-Plus的基礎環(huán)境就基本搭建完畢了。接下來就是做一下配置。
首先我們需要在啟動類上添加一個Mapper掃描的注解MapperScan,用來配置需要掃描的mapper包所在的位置。當然這個配置也可以放到任意的一個配置類上,效果是一樣的。
package com.lsqingfeng.springboot; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @className: SpringBootLearningApplication * @description: springboot啟動類 * @author: sh.Liu * @date: 2022-01-10 14:36 */ @SpringBootApplication @MapperScan("com.lsqingfeng.springboot.mapper") public class SpringBootLearningApplication { public static void main(String[] args) { SpringApplication.run(SpringBootLearningApplication.class, args); } }
如果我們想要使用Mybatis-Plus中的分頁功能,我們還需要添加一個配置類,加入分頁-的配置。
package com.lsqingfeng.springboot.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @className: MybatisPlusConfig * @description: * @author: sh.Liu * @date: 2022-03-04 14:55 */ @Configuration public class MybatisPlusConfig { /** * 老版本,目前已失效 * @return */ /**@Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); return paginationInterceptor; }*/ /** * 新的分頁插件,一緩和二緩遵循mybatis的規(guī)則, */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } }
再添加一個自動填充create_time和update_time的配置類:
package com.lsqingfeng.springboot.config; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.time.LocalDateTime; /** * @className: MyMetaObjectHandler * @description: * @author: sh.Liu * @date: 2022-03-04 14:57 */ @Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { log.info("start insert fill..."); this.setFieldValByName("createTime", LocalDateTime.now(), metaObject); this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject); } @Override public void updateFill(MetaObject metaObject) { log.info("start update fill..."); this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject); } }
這個配置類是要和實體類上的注解配置使用的。由于已經(jīng)在自動生成的工具類上做了設置,所以自動生成的實體中,createTime和updateTime上都會有對應注解,這樣才能自動填充。
/** * 創(chuàng)建時間 */ @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; /** * 更新時間 */ @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime;
4. 測試
寫一個Controller測試一下:這里大家要注意一下mybatisPlus提供的一些常用api, page,list,getOne,save,update等。大家可以關(guān)注一下具體寫法。
package com.lsqingfeng.springboot.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.lsqingfeng.springboot.base.Result; import com.lsqingfeng.springboot.entity.User; import com.lsqingfeng.springboot.service.IUserService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** *
* 前端控制器 *
* * @author springBoot-Learning * @since 2022-02-28 */ @RestController @RequestMapping("/user") public class UserController { /** * 構(gòu)造方法注入 */ private final IUserService userService; public UserController(IUserService userService) { this.userService = userService; } @GetMapping("/save") public Result save(){ User user =new User(); user.setAge(18); user.setAddress("北京王府井大街"); user.setName("張某某"); userService.save(user); return Result.success(); } @GetMapping("/update") public Result update(Integer id){ User user =new User(); user.setId(id); user.setName("修改的名字"); userService.updateById(user); return Result.success(); } @GetMapping("/list") public Result list(){ // 返回所有 List驗證:
save接口:
數(shù)據(jù)庫:
更新接口:
數(shù)據(jù)庫:
查詢所有接口:
條件查詢接口:
條件寫死了,查詢年齡=11, 名字包含張的,沒有符合條件的數(shù)據(jù):
List
根據(jù)id查詢接口:
分頁查詢:
三、總結(jié)
mybtisPlus的常用操作我們就已經(jīng)介紹完了。mybatisPlus當前的使用熱度也是越來越大,通過這篇文章相信大家應該會對mybatisPlus的使用有一個比較深刻的理解。
使用的主要步驟就是,先設計庫表,然后通過自動生成工具,生成我們所需要的實體、mapper、service等,Controller一般都是我們自己開發(fā),無需使用他們生成的Controller,之后就可以在我們的項目中,通過調(diào)用相應的service, mapper來實現(xiàn)常用的增刪改查操作。mybatisPlus火熱的主要原因即使他們封裝好的單表操作api,免去了我們書寫大量sql的工作量,可以直接通過調(diào)用相應api的方式完成大部分的單表操作功能,非常的簡便。
初次之外,mybatisPlus提供了非常詳細而又可讀的中文文檔,我們完全可以在文檔中找到我們所有想要找到的內(nèi)容。這一點應該也是國內(nèi)很青睞他的一個重要原因吧。
如果我們我們想要開發(fā)自定義的sql,使用方式和mybatis完全一樣,因為它和完全兼容mybatis的,我們只需要在的mapper.xml文件中寫自己的自定義sql就行了。
另: 配套項目代碼已托管中g(shù)itCode: gitcode.net/lsqingfeng/…
所有文章也會在微信公眾號首發(fā)更新,歡迎關(guān)注: 一縷82年的清風
MyBatis Spring Boot
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。