电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

SpringBoot學習系列之MyBatis Plus整合封裝的實例詳解

瀏覽:50日期:2023-11-26 16:39:34

前言

MyBatis-Plus是一款MyBatis的增強工具(簡稱MP),為簡化開發(fā)、提高效率,但我們并沒有直接使用MP的CRUD接口,而是在原來的基礎(chǔ)上封裝一層通用代碼,單表繼承我們的通用代碼,實現(xiàn)了單表的基礎(chǔ)get、save(插入/更新)、list、page、delete接口,使用Vo去接收、傳輸數(shù)據(jù),實體負責與數(shù)據(jù)庫表映射。

這樣做的目的是與我們之前的那套jpa保持編碼風格上的一致,當我們的通用接口不能滿足要求時,應(yīng)當先考慮使用MP的Service層CRUD接口,然后是Mapper的接口,最后才是自定義查詢,本文將記錄實現(xiàn)過程

MyBatis-Plus官網(wǎng):https://baomidou.com/

創(chuàng)建項目

在我們的工程里新建子工程springboot-mybatis-plus,pom繼承父工程,引入Mybatis-Plus相關(guān)jar包

<!--添加MyBatis-Plus依賴 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency> <!--添加代碼生成器依賴 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.0</version> </dependency> <!-- 模板引擎 --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.0</version> </dependency>

啟動類中配置mapper掃描路徑

@SpringBootApplication@MapperScan('cn.huanzi.qch.springbootmybatisplus.*.mapper')public class SpringbootMybatisPlusApplication { public static void main(String[] args) { SpringApplication.run(SpringbootMybatisPlusApplication.class, args); }}

創(chuàng)建MybatisPlusConfig配置類

/** * MybatisPlusConfig配置類 */@Configuration@ConditionalOnClass(value = {PaginationInterceptor.class})public class MybatisPlusConfig { /** * 分頁插件相關(guān) */ @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); return paginationInterceptor; } /** * 主鍵策略相關(guān) */ @Bean public IKeyGenerator keyGenerator() { return new H2KeyGenerator(); }}

配置文件配置數(shù)據(jù)庫連接,與項目信息

server.port=10102spring.application.name=springboot-mybatis-plus#修改thymeleaf訪問根路徑spring.thymeleaf.prefix=classpath:/view/

yml

spring: datasource: #數(shù)據(jù)庫相關(guān) url: jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&characterEncoding=utf-8 username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver mvc: date-format: yyyy-MM-dd HH:mm:ss #mvc接收參數(shù)時對日期進行格式化 jackson: date-format: yyyy-MM-dd HH:mm:ss #jackson對響應(yīng)回去的日期參數(shù)進行格式化 time-zone: GMT+8

到這里項目簡單搭建完成

通用代碼

接下來就是通用代碼的編寫,我們參考之前jpa的代碼,結(jié)合Mybatis-Plus的Mapper接口進行封裝通用get、save(插入/更新)、list、page、delete接口

代碼布局與jpa的風格一致

SpringBoot學習系列之MyBatis Plus整合封裝的實例詳解

接口也一樣

SpringBoot學習系列之MyBatis Plus整合封裝的實例詳解

  代碼生成器

MP原生的并不適合我們,我們要新建自定義模板,編寫代碼生成器

SpringBoot學習系列之MyBatis Plus整合封裝的實例詳解

SpringBoot學習系列之MyBatis Plus整合封裝的實例詳解

運行代碼生成器即可生成后端代碼,代碼風格與我們之前的jpa高度一致,同樣是封裝一套通用CRUD、page分頁接口,單表繼承實現(xiàn)快速開發(fā)

SpringBoot學習系列之MyBatis Plus整合封裝的實例詳解

接口效果演示

get接口:http://localhost:10102/tbUser/get/2

SpringBoot學習系列之MyBatis Plus整合封裝的實例詳解

list接口:http://localhost:10102/tbUser/list、http://localhost:10102/tbUser/list?id=2

SpringBoot學習系列之MyBatis Plus整合封裝的實例詳解

SpringBoot學習系列之MyBatis Plus整合封裝的實例詳解

page接口分頁、排序:http://localhost:10102/tbUser/page?page=1&rows=3&sidx=id&sord=desc

SpringBoot學習系列之MyBatis Plus整合封裝的實例詳解

save有id,更新:http://localhost:10102/tbUser/save?id=2&username=huanzixxxx

SpringBoot學習系列之MyBatis Plus整合封裝的實例詳解

save無id,新增:http://localhost:10102/tbUser/save?username=huanziyyy&password=000000&created=2020-08-16%2019:56:04

SpringBoot學習系列之MyBatis Plus整合封裝的實例詳解

delete刪除:http://localhost:10102/tbUser/delete/14

SpringBoot學習系列之MyBatis Plus整合封裝的實例詳解

后記

至此,我們便擁有了兩個編碼風格高度統(tǒng)一的ORM框架的自定義封裝,都有一套基礎(chǔ)通用的代碼、代碼自動生成工具,我們的開發(fā)效率大大提高,不管后續(xù)項目需要用到那個ORM框架,我們都有了技術(shù)儲備,實現(xiàn)快速開發(fā)!MyBatis相關(guān)可看回我們之前的系列博客:SpringBoot系列——MyBatis整合

MP:SpringBoot系列——MyBatis-Plus整合封裝

JPA:SpringBoot整合spring-data-jpa的方法

代碼開源

代碼已經(jīng)開源、托管到我的GitHub、碼云:

GitHub:https://github.com/huanzi-qch/springBoot

碼云:https://gitee.com/huanzi-qch/springBoot

到此這篇關(guān)于MyBatis Plus整合封裝的實例詳解的文章就介紹到這了,更多相關(guān)MyBatis Plus整合封裝內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 慈溪麦田广告公司,提供慈溪广告设计。 | 一体化预制泵站-一体化提升泵站-一体化泵站厂家-山东康威环保 | 东莞螺杆空压机_永磁变频空压机_节能空压机_空压机工厂批发_深圳螺杆空压机_广州螺杆空压机_东莞空压机_空压机批发_东莞空压机工厂批发_东莞市文颖设备科技有限公司 | 媒介云-全网整合营销_成都新闻媒体发稿_软文发布平台 | 自动焊锡机_点胶机_螺丝机-锐驰机器人 | led全彩屏-室内|学校|展厅|p3|户外|会议室|圆柱|p2.5LED显示屏-LED显示屏价格-LED互动地砖屏_蕙宇屏科技 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | b2b网站大全,b2b网站排名,找b2b网站就上地球网 | 澳威全屋定制官网|极简衣柜十大品牌|衣柜加盟代理|全屋定制招商 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 济南保安公司加盟挂靠-亮剑国际安保服务集团总部-山东保安公司|济南保安培训学校 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 周口市风机厂,周鼓风机,河南省周口市风机厂 | 【中联邦】增稠剂_增稠粉_水性增稠剂_涂料增稠剂_工业增稠剂生产厂家 | 缠绕机|缠绕膜包装机|缠绕包装机-上海晏陵智能设备有限公司 | 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 头条搜索极速版下载安装免费新版,头条搜索极速版邀请码怎么填写? - 欧远全 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 东莞市超赞电子科技有限公司 全系列直插/贴片铝电解电容,电解电容,电容器 | 耐火砖厂家,异形耐火砖-山东瑞耐耐火材料厂 | 四探针电阻率测试仪-振实密度仪-粉末流动性测定仪-宁波瑞柯微智能 | 伺服电机维修、驱动器维修「安川|三菱|松下」伺服维修公司-深圳华创益 | 变色龙云 - 打包app_原生app_在线制作平台_短链接_ip查询 | 深圳展厅设计_企业展馆设计_展厅设计公司_数字展厅设计_深圳百艺堂 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 罗氏牛血清白蛋白,罗氏己糖激酶-上海嵘崴达实业有限公司 | 液压油缸-液压缸厂家价格,液压站系统-山东国立液压制造有限公司 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | 国际高中-国际学校-一站式择校服务-远播国际教育 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 仿清水混凝土_清水混凝土装修_施工_修饰_保护剂_修补_清水混凝土修复-德州忠岭建筑装饰工程 | 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟 | 国产频谱分析仪-国产网络分析仪-上海坚融实业有限公司 | 无线遥控更衣吊篮_IC卡更衣吊篮_电动更衣吊篮配件_煤矿更衣吊篮-力得电子 | 别墅图纸超市|别墅设计图纸|农村房屋设计图|农村自建房|别墅设计图纸及效果图大全 | 厌氧反应器,IC厌氧反应器,厌氧三相分离器-山东创博环保科技有限公司 | 口臭的治疗方法,口臭怎么办,怎么除口臭,口臭的原因-口臭治疗网 | RS系列电阻器,RK_RJ启动调整电阻器,RQ_RZ电阻器-上海永上电器有限公司 | 球盟会·(中国)官方网站|