临汾山东漯河饰品美体美文
投稿投诉
美文创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品
漯河衢州
兴义眉山
桂林阳泉
玉溪简阳
山东遂宁
永城新余
梧州洛阳
泸州温州
临汾清远
营口常熟
浙江大连
桐乡宜昌

SpringBoot整合MybatisPlus基本的增删改查

5月1日 渡缘祠投稿
  MybatisPlus是国产的第三方插件,它封装了许多常用的CURDapi,免去了我们写mapper。xml的重复劳动,这里介绍了基本的整合SpringBoot和基础用法。20引入依赖
  在项目中pom文件引入mybatisplus和mysql驱动依赖,如下图dependencygroupIdcom。baomidougroupIdmybatisplusbootstarterartifactIdversion3。5。1versiondependencydependencygroupIdmysqlgroupIdmysqlconnectorjavaartifactIdversion8。0。26versiondependency30配置连接信息
  在项目中application。yaml文件中配置数据库的连接信息spring:datasource:driverclassname:com。mysql。cj。jdbc。Driverurl:jdbc:mysql:127。0。0。1:3306didiadmin?useUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLtrueserverTimezoneGMT2B8nullCatalogMeansCurrenttrueusername:rootpassword:12345640新建两个表
  本案例通过一个完整的业务流程来介绍如何使用mybatispuls,首先在数据库中新建两个表,一个是字典类型表sysdicttype和一个字典数据表sysdictdataCREATETABLEsysdicttype(idCHAR(19)CHARACTERSETutf8mb4COLLATEutf8mb4generalciNOTNULLCOMMENT标识,typenameVARCHAR(255)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT字典类型名称,typecodeVARCHAR(255)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT字典类型标识,descriptionVARCHAR(255)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT字典类型描述,enableCHAR(1)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT是否启用,createbyCHAR(19)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT创建人ID,createnameCHAR(19)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT创建人名称,createtimedatetimeDEFAULTNULLCOMMENT创建时间,updatebyCHAR(19)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT修改人ID,updatenameCHAR(19)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT修改人名称,updatetimedatetimeDEFAULTNULLCOMMENT修改时间,remarkVARCHAR(255)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT备注,PRIMARYKEY(id)USINGBTREE)ENGINEINNODBDEFAULTCHARSETutf8mb4COLLATEutf8mb4generalciROWFORMATDYNAMICCREATETABLEsysdictdata(dataidCHAR(19)CHARACTERSETutf8mb4COLLATEutf8mb4generalciNOTNULLCOMMENT标识,datalabelCHAR(19)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT字典标签,datavalueCHAR(20)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT字典值,typecodeCHAR(20)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT所属类型,isdefaultCHAR(1)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT是否默认,updatebyCHAR(19)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT修改人ID,updatenameCHAR(19)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT修改人名称,updatetimedatetimeDEFAULTNULLCOMMENT修改时间,createbyVARCHAR(255)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT创建人ID,createnameCHAR(19)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT创建人名称,createtimedatetimeDEFAULTNULLCOMMENT创建时间,remarkVARCHAR(255)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT备注,enableCHAR(1)CHARACTERSETutf8mb4COLLATEutf8mb4generalciDEFAULTNULLCOMMENT是否启用,PRIMARYKEY(dataid)USINGBTREE)ENGINEINNODBDEFAULTCHARSETutf8mb4COLLATEutf8mb4generalciROWFORMATDYNAMIC50在项目中创建相应的实体类
  通过观察SQL语句发现两个表中有很多相同的字段,所有我们把相同的字段抽离出来,放到一个基础的实体类中,其他实体类通过集成方式获取公共的字段。51创建基础实体类packagecom。didiplus。common。importcom。baomidou。mybatisplus。annotation。FieldFimportcom。baomidou。mybatisplus。annotation。TableFimportlombok。Dimportjava。io。Simportjava。time。LocalDateTAuthor:didiplusEmail:972479352qq。comCreateTime:2022429Desc:基础实体类DatapublicclassBaseDomainimplementsSerializable{创建时间TableField(valuecreatetime,fillFieldFill。INSERT)privateLocalDateTimecreateT创建人TableField(valuecreateby,fillFieldFill。INSERT)privateStringcreateBy;创建人名称TableField(valuecreatename,fillFieldFill。INSERT)privateStringcreateN修改时间TableField(valueupdatetime,fillFieldFill。UPDATE)privateLocalDateTimeupdateT修改人TableField(valueupdateby,fillFieldFill。UPDATE)privateStringupdateBy;修改人名称TableField(valueupdatename,fillFieldFill。UPDATE)privateStringupdateN备注privateS}
  TableField是mybatisplus中的一个注解,后面会讲解到的。
  基础实体类创建好了,接着我们把剩下的两个实体类也一同创建吧。52SysDictType实体类packagecom。didiplus。modules。sys。importcom。didiplus。common。base。BaseDimportcom。didiplus。common。base。ValidGimportio。swagger。annotations。ApiMimportio。swagger。annotations。ApiModelPimportlombok。Dimportjavax。validation。constraints。;Author:didiplusEmail:972479352qq。comCreateTime:2022425Desc:字典类型领域模型DataApiModel(value字典类型)publicclassSysDictTypeextendsBaseDomain{标识Null(groupsValidGroup。Crud。Create。class)NotNull(groupsValidGroup。Crud。Update。class,message字典ID不能为空)ApiModelProperty(ID)privateS字典名称NotBlank(message字典名称必填项)ApiModelProperty(value字典名称,example用户ID)privateStringtypeN字典类型NotBlank(message字典编码不能为空)ApiModelProperty(value字典编码)privateStringtypeC字典描述ApiModelProperty(value字典描述)privateS字典可用状态NotBlank(message字典状态不能为空)ApiModelProperty(value字典状态)privateB}53SysDictData实体类packagecom。didiplus。modules。sys。importcom。baomidou。mybatisplus。annotation。TableFimportcom。didiplus。common。base。BaseDimportcom。didiplus。common。base。ValidGimportio。swagger。annotations。ApiModelPimportlombok。Dimportjavax。validation。constraints。NotBimportjavax。validation。constraints。NotNimportjavax。validation。constraints。NAuthor:didiplusEmail:972479352qq。comCreateTime:2022429Desc:字典值领域模型DatapublicclassSysDictDataextendsBaseDomain{id编号Null(groupsValidGroup。Crud。Create。class)NotNull(groupsValidGroup。Crud。Update。class,message字典数据ID不能为空)ApiModelProperty(ID)TableField(valuedataid)privateStringdataId;字典显示NotBlank(message字典数据名称必填项)ApiModelProperty(value字典数据名称)privateStringdataL字典值NotBlank(message字典数据值不能为空)ApiModelProperty(value字典数据值)privateStringdataV字典类型ApiModelProperty(value字典编码)NotBlank(message字典数据值不能为空)privateStringtypeC是否为默认ApiModelProperty(value字典编码)NotBlank(message字典数据值不能为空)privateStringisD是否启用NotBlank(message字典状态不能为空)ApiModelProperty(value字典数据状态)privateB}60创建DAO继承MybatisPlus增强接口
  为两个实体类中分别添加DAO继承MybatisPlus增强接口,这样就可以集成了增删改查的功能了。61SysDictTypeMapperpackagecom。didiplus。modules。sys。importcom。baomidou。mybatisplus。core。mapper。BaseMimportcom。didiplus。modules。sys。domain。SysDictTimportorg。apache。ibatis。annotations。MAuthor:didiplusEmail:972479352qq。comCreateTime:2022429Desc:字典类型接口MapperpublicinterfaceSysDictTypeMapperextendsBaseMapperSysDictType{}62SysDictDataMapperpackagecom。didiplus。modules。sys。importcom。baomidou。mybatisplus。core。mapper。BaseMimportcom。didiplus。modules。sys。domain。SysDictDimportorg。apache。ibatis。annotations。MAuthor:didiplusEmail:972479352qq。comCreateTime:2022429Desc:字典数据接口MapperpublicinterfaceSysDictDataMapperextendsBaseMapperSysDictData{}70进一步封装到Service层71定义Service接口中的抽象方法SysDictDataServicepackagecom。didiplus。modules。sys。importcom。baomidou。mybatisplus。extension。service。ISimportcom。didiplus。modules。sys。domain。SysDictDAuthor:didiplusEmail:972479352qq。comCreateTime:2022429Desc:publicinterfaceSysDictDataServiceextendsIServiceSysDictData{}SysDictTypeServicepackagecom。didiplus。modules。sys。importcom。baomidou。mybatisplus。extension。service。ISimportcom。didiplus。modules。sys。domain。SysDictTAuthor:didiplusEmail:972479352qq。comCreateTime:2022429Desc:publicinterfaceSysDictTypeServiceextendsIServiceSysDictType{}72实现Service接口中的方法SysDictTypeServiceImplpackagecom。didiplus。modules。sys。service。importcom。baomidou。mybatisplus。extension。service。impl。ServiceIimportcom。didiplus。modules。sys。domain。SysDictTimportcom。didiplus。modules。sys。mapper。SysDictTypeMimportcom。didiplus。modules。sys。service。SysDictTypeSimportorg。springframework。stereotype。SAuthor:didiplusEmail:972479352qq。comCreateTime:2022429Desc:ServicepublicclassSysDictTypeServiceImplextendsServiceImplSysDictTypeMapper,SysDictTypeimplementsSysDictTypeService{}SysDictDataServiceImplpackagecom。didiplus。modules。sys。service。importcom。baomidou。mybatisplus。extension。service。impl。ServiceIimportcom。didiplus。modules。sys。domain。SysDictTimportcom。didiplus。modules。sys。mapper。SysDictTypeMimportcom。didiplus。modules。sys。service。SysDictTypeSimportorg。springframework。stereotype。SAuthor:didiplusEmail:972479352qq。comCreateTime:2022429Desc:ServicepublicclassSysDictTypeServiceImplextendsServiceImplSysDictTypeMapper,SysDictTypeimplementsSysDictTypeService{}80在控制层上进行增删改查操作81SysDictTypeControllerpackagecom。didiplus。modules。sys。importcom。didiplus。common。base。ValidGimportcom。didiplus。modules。sys。domain。SysDictTimportcom。didiplus。modules。sys。service。SysDictTypeSimportio。swagger。annotations。Aimportio。swagger。annotations。ApiOimportio。swagger。v3。oas。annotations。parameters。RequestBimportorg。springframework。beans。factory。annotation。Aimportorg。springframework。validation。annotation。Vimportorg。springframework。web。bind。annotation。;Author:didiplusEmail:972479352qq。comCreateTime:2022425Desc:数据字典控制器RestControllerApi(tags数据字典)RequestMapping(apisysdictType)publicclassSysDictTypeController{AutowiredSysDictTypeServicesysDictTypeSApiOperation(字典添加)PostMapping(add)publicStringadd(Validated(valueValidGroup。Crud。Create。class)RequestBodySysDictTypesysDictType){returnsysDictTypeService。save(sysDictType)?添加成功:添加失败;}ApiOperation(字典修改)PutMapping(edit)publicStringedit(Validated(valueValidGroup。Crud。Update。class)RequestBodySysDictTypesysDictType){returnsysDictTypeService。updateById(sysDictType)?修改成功:修改失败;}ApiOperation(字典删除)DeleteMapping(del{id})publicStringdel(PathVariableStringid){returnsysDictTypeService。removeById(id)?删除成功:删除失败;}}体验效果新增数据
  修改数据
  删除数据
  90自动填充功能
  原理:实现元对象处理器接口:com。baomidou。mybatisplus。core。handlers。MetaObjectHandler注解填充字段TableField(。。fillFieldFill。INSERT)生成器策略部分也可以配置!91自定义实现类DomainInterceptorpackagecom。didiplus。common。web。importcom。baomidou。mybatisplus。core。handlers。MetaObjectHimportorg。apache。ibatis。reflection。MetaOimportorg。springframework。stereotype。Cimportjava。time。LocalDateTAuthor:didiplusEmail:972479352qq。comCreateTime:202254Desc:字段填充拦截器ComponentpublicclassDomainInterceptorimplementsMetaObjectHandler{OverridepublicvoidinsertFill(MetaObjectmetaObject){createField(metaObject);}OverridepublicvoidupdateFill(MetaObjectmetaObject){updateField(metaObject);}Field创建时间publicvoidcreateField(MetaObjectmetaObject){this。strictInsertFill(metaObject,createTime,LocalDateTime。class,LocalDateTime。now());}Field修改时间publicvoidupdateField(MetaObjectmetaObject){this。strictUpdateFill(metaObject,updateTime,LocalDateTime。class,LocalDateTime。now());}}100分页查询101添加分页插件packagecom。didiplus。common。importcom。baomidou。mybatisplus。annotation。DbTimportcom。baomidou。mybatisplus。extension。plugins。MybatisPlusIimportcom。baomidou。mybatisplus。extension。plugins。inner。PaginationInnerIimportorg。springframework。context。annotation。Bimportorg。springframework。context。annotation。CAuthor:didiplusEmail:972479352qq。comCreateTime:202254Desc:mybatisplus分页插件ConfigurationpublicclassMyBatisPlusConfig{mybatisplus分页插件BeanpublicMybatisPlusInterceptormybatisPlusInterceptor(){MybatisPlusInterceptorinterceptornewMybatisPlusInterceptor();interceptor。addInnerInterceptor(newPaginationInnerInterceptor(DbType。MYSQL));}}102定义分页接口packagecom。didiplus。modules。sys。importcom。baomidou。mybatisplus。core。metadata。IPimportcom。baomidou。mybatisplus。extension。service。ISimportcom。didiplus。common。web。domain。PageDimportcom。didiplus。modules。sys。domain。SysDictTAuthor:didiplusEmail:972479352qq。comCreateTime:2022429Desc:数据字典类型服务类publicinterfaceSysDictTypeServiceextendsIServiceSysDictType{IPageSysDictTypepage(PageDomainpageDomain);}103实现分页接口packagecom。didiplus。modules。sys。service。importcom。baomidou。mybatisplus。core。metadata。IPimportcom。baomidou。mybatisplus。extension。plugins。pagination。Pimportcom。baomidou。mybatisplus。extension。service。impl。ServiceIimportcom。didiplus。common。web。domain。PageDimportcom。didiplus。modules。sys。domain。SysDictTimportcom。didiplus。modules。sys。mapper。SysDictTypeMimportcom。didiplus。modules。sys。service。SysDictTypeSimportorg。springframework。stereotype。Simportjavax。annotation。RAuthor:didiplusEmail:972479352qq。comCreateTime:2022429Desc:ServicepublicclassSysDictTypeServiceImplextendsServiceImplSysDictTypeMapper,SysDictTypeimplementsSysDictTypeService{ResourceSysDictTypeMappersysDictTypeMOverridepublicIPageSysDictTypepage(PageDomainpageDomain){IPageSysDictTypepagenewPage(pageDomain。getPage(),pageDomain。getLimit());returnsysDictTypeMapper。selectPage(page,null);}}104控制层调用RestControllerApi(tags数据字典)RequestMapping(apisysdictType)publicclassSysDictTypeController{AutowiredSysDictTypeServicesysDictTypeSApiOperation(字典分页查询)GetMappingpublicIPagelist(RequestBodyPageDomainpageDomain){returnsysDictTypeService。page(pageDomain);}}
  PageDomain定义了分页接收的两个参数
  PageDomain类packagecom。didiplus。common。web。importlombok。DAuthor:didiplusEmail:972479352qq。comCreateTime:202254Desc:分页参数封装DatapublicclassPageDomain{当前页privateI每页数量privateI}105体验效果
  下一篇,我们继续来学习mybatisPlus的代码生成器
  原文链接:SpringBoot整合MybatisPlus基本的增删改查,保姆级教程北根娃博客园
投诉 评论

SpringBoot整合MybatisPlus基本的增删改查MybatisPlus是国产的第三方插件,它封装了许多常用的CURDapi,免去了我们写mapper。xml的重复劳动,这里介绍了基本的整合SpringBoot和基础用法。20……时间不会辜负每一分努力来源:新华社时间从来都不负有心人。时间从来都不负有心人,它会把人生考卷的答案,慢慢呈现在你眼前。时间从来不语,却回答了所有问题。我们常会感叹时间过得太快……量子计算机Boeeralis利用可编程光子传感器实现计算优势来自完全可编程光子处理器的高维GBS。来自脉冲OPO的单模挤压状态的周期性脉冲序列进入三个动态可编程的基于环路的干涉仪序列。每个环路包含一个VBS,包括一个可编程移相器和一个光……1060不再是PC最常用显卡!Steam硬件调查显示1060V社公布了Steam平台11月硬件调查报告。这个月PC硬件市场迎来了一项值得关注的变化:按照Steam的排序方式,GTX1060已经不再是使用率最高的显卡,它已经被GTX165……深圳迎来光伏热潮,光伏ETF聚集优质资产为深入贯彻落实党中央、国务院关于碳达峰碳中和重大战略决策,优化调整深圳市能源结构,提高可再生能源利用比例,加快推进深圳市光伏产业高质量发展,支持分布式光伏发电项目推广应用,深圳……湖湘自然历丨郴州风物水碧山青,唱一曲不老的生命之歌湖湘自然历丨郴州风物水碧山青,唱一曲不老的生命之歌2023年1月5日星期四小寒第1天从天鹅山高处俯瞰山下,东江湖犹如一条绿色的飘带环抱着天鹅山,在云雾中若隐若现。……美国犹他州,一座公园里有2000座天然岩石拱门,去看最美的画炎炎烈日下,车外到处都是死寂的红土荒原,周围弥漫着40度的气温,这可不是好莱坞动作大片的拍摄现场,而是美国西部牛仔的故乡亚利桑那州与犹他州的交界地,也是北美印第安纳瓦霍人的保留……当初那些骑行西藏的人,后来都怎么样了?西藏是一个有故事的地方那里有巍峨的雪山有纯净的湖泊,有神圣的信仰也有美丽的传说在很多人心里西藏就像是一种毒让人此生不去心不安……从海归学者到创业人才专注智能移动机器人创新研发日前,秦创原原力榜发布,清控科创西部创新加速中心入驻企业:西安天之博特科技有限公司从全省千余家科创企业中脱颖而出,成功入围秦创原原力榜,获得了广泛关注。而在荣光的背后,团队也为……才发现,只要酒瓶上有这3个记号,100是纯粮佳酿,放心喝不知道大家有没有发现,不管是去应酬还是和朋友小聚,饭局的成本越来越高了,而这其中并不是饭菜占了大头,而是酒。市面上熟知的名酒,例如飞天茅台,一瓶市场价3000元左右,甚至……游戏头部厂商,恺英网络治理改善释放成长红利,前瞻布局VR生态(报告出品方分析师:国联证券郑磊)1公司介绍:传奇类游戏头部厂商,公司治理重回正轨1。1历史沿革:经典传奇页转手,探索细分品类VR传奇类游戏头部厂商,开拓IPVR新……曾被国内女观众视为梦中情人8位男演员,今最小者也有57岁了上世纪八九十年代,是港台娱乐圈盛产男神的黄金时代。从撑起娱乐圈半边天的四大天王,到张国荣、梁朝伟、金城武等,每个人拎出来都称得上是顶流男神,而且每个人也都有着与颜值相匹配……
Miss,Miss,Miss,李春江的三板斧全抡完了,广厦仍长期情绪不好,可能会引起脱发不同脸型如何自拍?这些自拍技巧,有点意思学习不好是专注力问题?不要再被骗了,带你了解专注力的本质内马尔面临欺诈审判,被指控谎报2013年巴塞罗那转会费用河南85后夫妻,靠真爱营销收割2000万人,如今百亿神话破灭别白跑!中国航空博物馆大岭沟猕猴桃谷风景区七孔桥花海暂停开放屡次挑战东半球最强法务部?任天堂究竟何时出击玉屏风只含三味药,却有大作用,对症应用可辅助改善4大类疾病春天想吃鱼,建议吃这5种鱼,比生蚝滋补,比大虾便宜,别错过了种种事例表明,蒋劲夫的人品性格都不行,外卖员估计都干不久四川行(6)眉山五湖四海湿地女囚回忆录四十四餐厅、酒店小笑话浙江一小男孩火了,强制给狗子吹葫芦丝,妈妈拍下了搞笑的瞬间脱毛应该在洗澡前还是洗澡后我的外婆作文600字2022年江苏省本科提前批平行志愿投档线公布!折戟沉沙,安卓时代没落的王者HTC兴衰史王者荣耀S27射手荣耀来袭!后羿孙尚香玩家笑出声一个人的快乐(上)怎样正确自学美声大班社会教案纵狗伤人负什么责任

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找