MyBatis Plus应用(五)schema的优雅实现

1.背景介绍 在我个人的企业级开发实践中,使用数据库的schema是经常会遇到的,特别在于一些连接其它系统的数据库时,时常被授以小账号的只读用户,所以在使用过程中所有相关用户的对象均需要使用shcema的方式引用,在JPA中内置了一些指令表达式可以用于动态的替换schema,比如在Oracle中使用{h-schema},在MySQL中使用{h-catalog},而在MyBatisPlus中貌似只给了全局的参数配置“mybatis-plus.global-config.db-config.schema”来实现基于MyBatisPlus API的schema,但这种方式在Mapper的xml中不生效,或者时我并不知道这种方式在XML中如何去使用。 本站2.0的实现专门使用到了MyBatisPlus(学习并使用了),很巧妙的避开了schema这块的问题,然而同事近期的项目中使用了MyBatisP...

文章分类:后端一部分 MyBatis Plus

MyBatisPlus

MyBatis Plus应用(四)动态表的实践

1.基本介绍 动态表的目的是为了拆分表的数据,将一个业务功能表中的数据拆分为多个表中存储,将数据分散存储提高查询速度和数据维护。在普通的MyBatis中若要实现动态表则需要自己编写动态表的规则配合再配合$表达式结合使用,MyBatis Plus中提供的动态表功能择是通过全局的配置实现,即声明要动态出现的表名以及构造动态表名的处理逻辑即可,本站系统的实现小试了基于日期规则的动态表名实现,本篇文章则是实现基于当前日期来实现的动态表的数据逻辑,具体参考如下文所述。 2.声明动态表 动态表的声明与分页插件一样需要全局进行配置,声明的是动态表的字符串key和当SQL语句中出现此key文本数据时的对应转换逻辑,其内部实现大概可以理解为对字符串的特殊处理,检索待执行SQL语句中是否包含有待处理的表名字符串,当出现时再根据彼时的参数对象中获取解析逻辑中需要获取的日期参数,调用动态表名的处理规则来获取匹配逻...

文章分类:后端一部分 MyBatis Plus

MyBatisPlus

MyBatis Plus应用(三)分页插件的实践

1.基本介绍 数据分页在日常应用开发中会被经常使用,MyBatis Plus提供了分页插件的支持,使得对于查询分页的功能实现变得更加的简单了,若非如此需要我们手动编写count语句和列表查询语句,同时count语句某些场景还需要手动的进行SQL语句优化,而这些MyBatis Plus的分页插件都已经替我们实现好了,同时兼容多种数据库的应用。本文通过两个测试案例的实践来展示具体的分页应用,参考实现过程如下。 2.配置插件 由于是SpringBoot项目环境,需要配置PaginationInterceptor组件,此步骤必不可少,若缺少后本篇文章中的测试代码虽可正常运行,但仅会被视为普通查询,查询的数据结果并非为实际的分页查询语句,需要格外注意。 packagecn.chendd.mybatisplus.config; import...; /** *MybatisPlusConfig *...

文章分类:后端一部分 MyBatis Plus

MyBatisPlus

Mybatis Plus应用(二)逻辑删除的实践

1.基本介绍 逻辑删除在某些应用场景还是有些作用的,本站在实现时对于某些功能的数据也使用了逻辑删除,本篇文章则讲述一下MyBatis Plus的逻辑删除是如何应用的,具体如下。 曾经逻辑删除在使用实现时有块逻辑也一直没用弄清楚,即新增数据时未设置逻辑删除的字段,它的数据是如何存储的呢,网上百科知识无果,最终将其官方提供的项目示例源代码拉取下来后,拆解功能实现,最终发现是在数据库见表时的字段上设置了默认值为标识逻辑删除的值,实际上已经内置或者定制了逻辑删除的未删除参数值,为何不在insert数据时拿到此数据和逻辑删除的字段进行字段数据的存储呢,反而要额外的通过数据库字段的默认值来实现;或者是在定义表的实体对象时直接给出逻辑删除未删除的初始化参数值,未知当前新版本是否有此改进。特别说明,本站开始编码时已是两年前了,届时的最新版本为3.3.1。 逻辑删除默认使用的标识是0与1,0表示未删除,1表...

文章分类:后端一部分 MyBatis Plus

MyBatisPlus

Mybatis Plus应用(一)简单介绍与环境搭建

1.基本介绍 回顾工作这么多年来,数据库的持久层用过各种多样的实现,实际上MyBatis在实际的项目应用中使用的时间并不久,但对它的实现以及应用的深度掌握也不可谓不多,但是MyBatis Plus的应用确实是空白,曾在前两年新一轮学习时接触了两款MyBatis的增强实现,最终挑选了社区更加活跃Mybatis Plus作为本站的持久层实现,主要还是借助于本站博客系统的实现来深度的掌握它。 从它的官网介绍来看,MyBatis Plus只对MyBatis做增强并未做代码改变,增加对单表的面向对象各种操作,同时又提供了多项扩展的功能点,更加易于应用于日常的业务功能实现。正如我经常在面试时会问及MyBatis Plus被应用时主要使用到了它的哪些功能点的问题(都是简历上有写MyBatis Plus),但似乎得到的答案并没用符合我的预期结果的,若有使用过可能只是简单停留在应用层面;若仔细看过官方网站则...

文章分类:后端一部分 MyBatis Plus

MyBatisPlus
本站信息

 运营时间: 天

 用户数量: 人

 文章数量: 篇

 评论数量: 条

 点赞个数: 个

 最后更新:

标签云