首页 文章 精选 留言 我的

精选列表

搜索[mybatis],共3678篇文章
优秀的个人博客,低调大师

EasyTrans 1.2.6 发布,Mybatis Plus 多表关联外键翻译组件

更新内容: 字典翻译缓存支持放到redis中 添加使用map的实现类包装vo 进行翻译(比如ruoyi的AjaxResult) 插件介绍: 表里我们经常存放字典码,外键 给前端展示的时候要展示字典描述 (比如 sex 0 代表男),外键要显示 title/name (如 userid 1 要翻译为张三)。字典比较简单,很多项目都直接交给前端翻译,但是外键翻译是必须要后台来做的,最常见的做法就是 表 join ,这样又要自己写 sql 比较麻烦。使用 Easy Trans,只需要一个注解就可以搞定数据翻译。 支持的场景: 字典翻译 把 sex 0 翻译为男 普通外键翻译 / 唯一键翻译 框架使用 mp/jpa 能力自动帮你去执行 sql 根据外键查询 name/title 并且 set 到你的 vo 字段上 跨微服务翻译 比如 order 集合 user 是 2 个微服务,但是 order 要展示创建人姓名,表里只有 id 可以使用跨微服务翻译 枚举翻译 把枚举中的汉字给到前端 Trans 注解: 程序员只需要掌握这一个注解就算熟练使用 EasyTrans 了,绝对不干让程序员掉更多头发的事情。 @Data @Builder @AllArgsConstructor @NoArgsConstructor //实现TransPojo 接口,代表这个类需要被翻译或者被当作翻译的数据源 public class Student implements TransPojo { // 字典翻译 ref为非必填 @Trans(type = TransType.DICTIONARY,key = "sex",ref = "sexName") private Integer sex; //这个字段可以不写,实现了TransPojo接口后有一个getTransMap方法,sexName可以让前端去transMap取 private String sexName; //SIMPLE 翻译,用于关联其他的表进行翻译 schoolName 为 School 的一个字段 @Trans(type = TransType.SIMPLE,target = School.class,fields = "schoolName") private String schoolId; //远程翻译,调用其他微服务的数据源进行翻译 @Trans(type = TransType.RPC,targetClassName = "com.fhs.test.pojo.School",fields = "schoolName",serviceName = "easyTrans",alias = "middle") private String middleSchoolId; // 枚举翻译,返回文科还是理科给前端 @Trans(type=TransType.ENUM,key = "desc") private StudentType studentType = StudentType.ARTS; public static enum StudentType{ ARTS("文科"), SCIENCES("理科"); private String desc; StudentType(String desc){ this.desc = desc; } } } 项目地址:https://gitee.com/fhs-opensource/easy_trans 文档地址:https://gitee.com/fhs-opensource/easy_trans/wikis

优秀的个人博客,低调大师

EasyTrans 1.2.4 发布,Mybatis Plus 多表关联外键翻译组件

更新内容: 支持表唯一键字段代替主键翻译(比如excel导入填写用户手机号,插入数据库的时候需要userid) 修复使用 @TransMethodResult 翻译方法返回值的时候,平铺不起作用的问题 修复vo中有循环嵌套 会引发无限循环问题 插件介绍: 表里我们经常存放字典码,外键 给前端展示的时候要展示字典描述(比如 sex 0 代表男),外键要显示title/name (如userid1 要翻译为张三)。字典比较简单,很多项目都直接交给前端翻译,但是外键翻译是必须要后台来做的,最常见的就是 表join ,这样又要自己写sql 比较麻烦。使用Easy Trans,只需要一个注解就可以搞定数据翻译。 支持的场景: 字典翻译 把sex 0翻译为男 普通外键翻译/唯一键翻译 框架使用mp/jpa能力自动帮你去执行sql根据外键查询name/title 并且set到你的vo字段上 跨微服务翻译 比如order集合user是2个微服务,但是order要展示创建人姓名,表里只有id 可以使用跨微服务翻译 枚举翻译 把枚举中的汉字给到前端 Trans注解: 程序员只需要掌握这一个注解就算熟练使用EasyTrans了,绝对不干让程序员掉更多头发的事情。 @Data @Builder @AllArgsConstructor @NoArgsConstructor //实现TransPojo 接口,代表这个类需要被翻译或者被当作翻译的数据源 public class Student implements TransPojo { // 字典翻译 ref为非必填 @Trans(type = TransType.DICTIONARY,key = "sex",ref = "sexName") private Integer sex; //这个字段可以不写,实现了TransPojo接口后有一个getTransMap方法,sexName可以让前端去transMap取 private String sexName; //SIMPLE 翻译,用于关联其他的表进行翻译 schoolName 为 School 的一个字段 @Trans(type = TransType.SIMPLE,target = School.class,fields = "schoolName") private String schoolId; //远程翻译,调用其他微服务的数据源进行翻译 @Trans(type = TransType.RPC,targetClassName = "com.fhs.test.pojo.School",fields = "schoolName",serviceName = "easyTrans",alias = "middle") private String middleSchoolId; // 枚举翻译,返回文科还是理科给前端 @Trans(type=TransType.ENUM,key = "desc") private StudentType studentType = StudentType.ARTS; public static enum StudentType{ ARTS("文科"), SCIENCES("理科"); private String desc; StudentType(String desc){ this.desc = desc; } } } 项目地址:https://gitee.com/fhs-opensource/easy_trans 文档地址:https://gitee.com/fhs-opensource/easy_trans/wikis

优秀的个人博客,低调大师

sqltoy-orm-4.18.22 发版,还在坚持 mybatis(plus) 吗?

开源地址: github:https://github.com/sagframe/sagacity-sqltoy gitee:https://gitee.com/sagacity/sagacity-sqltoy idea 插件(可直接在idea中检索安装):https://github.com/threefish/sqltoy-idea-plugins 更新内容 1、在findEntity中EntityQuery可以设置fetchSize,在sqltoyContext中可以全局设置fetchSize,实现查询数据提取的性能 2、针对一些特殊原因导致表名是数据库关键词场景的兼容 ORM的最佳形态:类JPA对象式操作+超强查询 jpa对象式操作:dao.save(entity)/saveAll(List<Entity>)/update(entity)/load(new Entity(id)) 模式,简单直接,对此大家基本能形成共识,也是各种ORM差异最小的。sqltoy在这个方面相信是对等的,因为是共识理论上来说不必要每次都提及! 2. 超强查询:最理想的状态就是:第一在数据库客户端调试好的sql 最直观高效的移入项目工程中;第二、在需求变化时最简单快速的可以从工程中放入数据库客户端中进行调试。也就是说要最大限度的保持sql的原始面貌; 用ORM我们真真正正的痛点是什么? 1、sql的编写和后期维护,上面的图例已经说明问题。 2、执行效率:当同样功能效率有几倍差距时其实就是天地之别了,带来的直接效果就是:一边是用户的高度夸赞、一边是用户的鄙视,您能理解这是什么差距吗? sqltoy的缓存翻译,大幅减少表关联简化sql,让你的查询性能成几何级提升 极致的分页,同样帮助你实现查询的性能大幅提升 快速分页:@fast() 实现先取单页数据然后再关联查询,极大提升速度 分页优化器:page-optimize 让分页查询由两次变成1.3~1.5次(用缓存实现相同查询条件的总记录数量在一定周期内无需重复查询 sqltoy的分页取总记录的过程不是简单的select count(1) from (原始sql);而是智能判断是否变成:select count(1) from 'from后语句', 并自动剔除最外层的order by sqltoy支持并行查询:parallel="true",同时查询总记录数和单页数据,大幅提升性能 在极特殊情况下sqltoy分页考虑是最优化的,如:with t1 as (),t2 as @fast(select * from table1) select * from xxx 这种复杂查询的分页的处理,sqltoy的count查询会是:with t1 as () select count(1) from table1, 如果是:with t1 as @fast(select * from table1) select * from t1 ,count sql 就是:select count(1) from table1 做过统计分析的您,害怕数据旋转吗?害怕同比环比吗? 无限极分组统计(含汇总求平均),算法配置简单又跨数据库! 同比环比 sqltoy还有什么? 因为篇幅原因,这里不过多展开,我相信您想要的,在sqltoy中基本都可以找到满意的答案!比如:分库分表、树形数据处理、sql跨数据库等等! 致谢 感谢广大网友的支持,提出宝贵的反馈意见,sqltoy的一步步的成熟是大家直觉式的眼光和敢于试错的精神加入到sqltoy这个还处于发展中的小众框架用户群体中来,让我们一起来让其成熟发展服务于更多的用户!也祝愿sqltoy可以帮助到大家,愿大家可以工作生活平衡!

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册