恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Xbatis 1.7.7 - 1.10.6 版本更新:少写 1/3 - 2/3 持久层代码,API 简单快捷!

  • 首页
  • 资讯中心
  • /
  • Xbatis 1.7.7 - 1.10.6 版本更新:少写 1/3 - 2/3 持久层代码,API 简单快捷!

相关资讯

计算机毕业设计之基于jsp旅游网系统 2026/10/10 2:54:09
推荐一个上班摸鱼神器,上班看txt小说阅读器,本人亲测,简直好用的不得了 2026/10/10 2:54:15
5分钟掌握EdgeFlow插件:Blender边缘循环调整的终极指南 2026/10/10 2:54:23

最新资讯

第三章:GEM分析 3.3.1 drm_vma_offset_manager:偏移窗口与访问控制
【DIY】有线多媒体播放器 改成录音播放器蓝牙连接手表
【例 1】Sightseeing Trip(信息学奥赛一本通- P1494)(洛谷-P10927)
TLC5925 驱动代码:16 通道恒流 LED 驱动器详解与实战
Agent开发入门:小白程序员必备技能与学习路线图(收藏版)
内容被状态栏挡住怎么办?getWindowAvoidArea 第一次实践【鸿蒙心迹】

今日推荐

SAP 屏幕上的金额未必存在数据库表里,从 WB2R_SV 的 Net Amount 看懂运行时计算
具身智能中‘指哪打哪’的视觉语言动作联合建模
AI时代人工翻译技术博客的价值与实践指南

本周热门

基于GMM的语音识别系统原理与MATLAB实现详解
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

Xbatis 1.7.7 - 1.10.6 版本更新:少写 1/3 - 2/3 持久层代码,API 简单快捷!

发布时间:2026/10/21 11:36:22
Xbatis 1.7.7 - 1.10.6 版本更新:少写 1/3 - 2/3 持久层代码,API 简单快捷! 推荐理由强、强、强 单表连表不想连表让你直接少写 1/3 甚至 2/3 的持久层代码API 简单 快捷 优雅 简洁 构建 SQL 非常强用过的、没用过的都来体验虽然有 AI 了但是真正好用的 ORM 的还不能忽略的除非你以后不维护。1.10.6 - 2026-07-021新增 COALESCE 函数2新增 [Map 结果 强制包含 value 为 null 的 key](https://xbatis.cn/zh-CN/function/core/QueryChain.html#returnmap-%E6%98%A0%E5%B0%84map%E7%B1%BB)3新增 [Map key 下划线转驼峰处理](https://xbatis.cn/zh-CN/function/core/QueryChain.html#returnmap-%E6%98%A0%E5%B0%84map%E7%B1%BB)4新增 [DDL 自动化自动建表、索引、列新增、序列](https://xbatis.cn/zh-CN/function/core/ddlAuto.html)1.10.5 - 2026-06-211修复插入数据时未拼上 Table 的 schema 的问题2增加[局部某个表 leftJoin 禁止优化](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Fintro%2Fsql-optimize.html%23%25E5%25A6%2582%25E6%259E%259C%25E5%25A6%2582%25E4%25BD%2595%25E5%2585%25B3%25E9%2597%25AD-sql%25E4%25BC%2598%25E5%258C%2596)的功能3其他优化4增加 [SQL 审计](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fcore%2Faudit.html)1.10.3 - 2026-05-271[Fetch fetchFilter 强制调用开关](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fannotation%2Ffetch.html%23%25E5%25B1%259E%25E6%2580%25A7%25E8%25AF%25B4%25E6%2598%258E)2数据库识别支持 p6spy jdbc url 格式3[其他优化 表名 /schema 支持动态设置](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fannotation%2Ftable.html%23_4%25E8%25A1%25A8%25E5%2590%258Dschema-%25E5%258A%25A8%25E6%2580%2581%25E8%25AE%25BE%25E7%25BD%25AE%25E9%259D%259E%25E5%2588%2586%25E8%25A1%25A8%25E8%25A1%258C%25E4%25B8%25BA)非分表行为4crud 支持自己创建的 lambda getter 方法引用例如: .eq(EntityLambdaUtil.createSetter(SysUser.class, id), 1)5修复单列 Fetch 数据库为 null 时运行异常的问题6[增加 nested 方法来替代 orNested 和 andNested](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fcore%2FQueryChain.html%23and-%25E6%2588%2596-or-%25E4%25B8%2580%25E4%25B8%25AA%25E5%25AD%2590%25E6%259D%25A1%25E4%25BB%25B6)7[增加 where 方法平替 and or 动态方法](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fcore%2FQueryChain.html%23%25E5%258A%25A8%25E6%2580%2581%25E6%259D%25A1%25E4%25BB%25B6)8[新增 getValueById (获取单列值) 方法](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fbase%2Fget-query.html%23mapper-%25E5%2586%2585%25E7%25BD%25AE%25E6%2596%25B9%25E6%25B3%2595)9[QueryChain 增加 mapGroupWithKey 分组功能](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fbase%2FmapWithKey-query.html%23mapper-%25E5%2586%2585%25E7%25BD%25AE%25E6%2596%25B9%25E6%25B3%2595)1.10.2 - 2026-04-291[实现 Fetch, 支持生效条件](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fannotation%2Ffetch.html%23fetch-%25E7%2594%259F%25E6%2595%2588%25E6%259D%25A1%25E4%25BB%25B6)2in/notIn 单条时变成 eq/ne 行为3其他优化1.10.1 - 2026-04-271: 优化 Fetch 功能代码2[实现 Fetch 更多合并的功能场景](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fannotation%2Ffetch.html%23fetch-%25E5%2590%2588%25E5%25B9%25B6%25E6%259F%25A5%25E8%25AF%25A2)从 2 层到 1 层转变减少 VO 创建3[Fetch 注解增加逻辑删除策略支持忽略逻辑删除](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fannotation%2Ffetch.html%23%25E5%25B1%259E%25E6%2580%25A7%25E8%25AF%25B4%25E6%2598%258E)1.10.0 - 2026-04-181修复主动调用了 fetchFilter/fetchEnable 时可能出现报错的问题未使用 fetchFilter/fetchEnable 的不影响1.9.9 - 2026-04-131[增加 partialUpdate 精准 (局部) 修改方法](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fbase%2Fupdate.html%23%25E7%25B2%25BE%25E5%2587%2586-%25E5%25B1%2580%25E9%2583%25A8-%25E4%25BF%25AE%25E6%2594%25B9)2[原生 updateBatch 修改增加 null / 默认值忽略设置方法](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fbase%2Fupdate.html%23%25E5%258E%259F%25E7%2594%259Fsql%25E6%2589%25B9%25E9%2587%258F%25E4%25BF%25AE%25E6%2594%25B9-%25E6%258C%2587%25E5%25AE%259A%25E4%25BF%25AE%25E6%2594%25B9%25E7%25AD%2596%25E7%2595%25A5)3LambdaUtil 类增加 setter/getter Lambda 生成方法4[ResultCalcField 注解支持数据库函数](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fannotation%2FresultCalcField.html%23%25E9%2585%258D%25E7%25BD%25AE%25E6%2596%25B9%25E5%25BC%258F%25E4%25BA%258Corm-%25E5%2587%25BD%25E6%2595%25B0)5修复 exists/notExists 中子查询嵌套子查询时别名一致导致无法上下级引用的问题6增加 [join 子查询的简化写法](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fbase%2Fjoin-query.html%23join%25E5%25AD%2590%25E6%259F%25A5%25E8%25AF%25A2-%25E6%2596%25B9%25E5%25BC%258F1-%25E6%258E%25A8%25E8%258D%2590)7所有 Mp 开头的类 改为 Xbatis 开头8优化 selectIgnore 功能不再要求先 select9增加 orderByAsc 方法减少从 mybatis-plus 迁移到 xbatis 的工作量10优化底层代码11[增加 resultmap 官方动态映射继承](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Fintro%2FresultMapExtend.html%23xml-resultmap-%25E5%258A%25A8%25E6%2580%2581%25E7%25BB%25A7%25E6%2589%25BF%25E5%25AE%2598%25E6%2596%25B9%25E9%2585%258D%25E7%25BD%25AE)12所有查询完美兼容 pageHelper13对于顶级类的字段增加列为为字段名的 resultMap 映射14支持[多列 in-notIn 操作](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Fdemo%2Fother-hard.html%23%25E5%25A4%259A%25E5%2588%2597in-notin%25E6%259D%25A1%25E4%25BB%25B6)15[Fetch 支持合并查询](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fxbatis.cn%2Fzh-CN%2Ffunction%2Fannotation%2Ffetch.html%23fetch-%25E5%2590%2588%25E5%25B9%25B6%25E6%259F%25A5%25E8%25AF%25A2)从 2 层到 1 层转变减少 VO 创建1.8.7 更新内容1为了更好的 JAVAXML 结合query 和 where 增加 tableAs (实体类别名) 方法用于自定义表名别名2XbatisConfig 改为 XbatisGlobalConfig3增加[逻辑删除拦截器](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.oschina.net%2Faction%2FGoToLink%3Furl%3Dhttps%253A%252F%252Fxbatis.cn%252Fzh-CN%252Ffunction%252Fcore%252FlogicDelete.html)4[update](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.oschina.net%2Faction%2FGoToLink%3Furl%3Dhttps%253A%252F%252Fxbatis.cn%252Fzh-CN%252Ffunction%252Fbase%252Fupdate.html) [delete](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.oschina.net%2Faction%2FGoToLink%3Furl%3Dhttps%253A%252F%252Fxbatis.cn%252Fzh-CN%252Ffunction%252Fbase%252Fdelete.html) 增加 原生 RETURNING (原生) 功能5增加原生 sql 查询方法和 [update delete RETURNING 功能](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.oschina.net%2Faction%2FGoToLink%3Furl%3Dhttps%253A%252F%252Fxbatis.cn%252Fzh-CN%252Ffunction%252Fcore%252FnativeSQL.html)6增加了一个 [Mapper 方法拦截器](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.oschina.net%2Faction%2FGoToLink%3Furl%3Dhttps%253A%252F%252Fxbatis.cn%252Fzh-CN%252Ffunction%252Fcore%252FmethodInterceptor.html)7增加 [exists/not exists 简易写法](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.oschina.net%2Faction%2FGoToLink%3Furl%3Dhttps%253A%252F%252Fxbatis.cn%252Fzh-CN%252Fdemo%252Fother-hard.html%2523exists)通用 SQL 扩展_//类型支持 实体类VO 和普通 POJO_SysUser user sysUserMapper.select(SysUser.class, select * from t_sys_user where id ?, 1);_//支持增删改且支持返回数据_String user_name sysUserMapper.executeAndReturning(String.class, update t_sys_user set user_name? where id1 RETURNING user_name, xxx);_//ORM 写法 删除并返回被删除的数据数据库原生操作_List list DeleteChain.of(sysUserMapper).in(SysUser::getId, 1, 2).returning(SysUser.class).returnType(SysUser.class).executeAndReturningList();_//ORM 写法 修改并返回修改后的数据数据库原生操作适合金额加减操作返回剩余金额_SysUser sysUser UpdateChain.of(sysUserMapper).eq(SysUser::getId, 1).set(SysUser::getUserName, abc2).returning(SysUser.class).returnType(SysUser.class).executeAndReturning();分表配置DataSplitTable(SysUserSplitter.class)public class SysUser {TableIdprivate Integer id;SplitTableKeyprivate Integer groupId;private String nickname;private String username;}public class SysUserSplitter implements TableSplitter {Overridepublic boolean support (Class type) {return type Integer.class || type int.class;}Overridepublic String split (String sourceTableName, Object splitValue) {Integer groupId (Integer) splitValue;_//分成 10 个表_return sourceTableName _ groupId % 10;}}分表就是这么简单其他操作和常规无异1.7.7 更新内容1QueryChain,DeleteChain,InsertChain,UpdateChain 支持 BasicMapper 方法2支持通用 BasicMapper可不需要创建多个实体类 Mapper一个 BasicMapper 即可使用所有功能3正式支持单 Mapper (写一个 Mapper 即可)为什么推荐 xbatisxbatis 是一款超级强大的 ORM 框架1可多表 join不再只能单表了2代码分页xml 还可以分页可以不用 pagehelper 了3良好的扩展能力ormsql 模板 让 ORM 框架不再死板扩展性极强4强大的各种数据库适配可在一套代码中 实现多个数据库适配真正的 ORM hibernate 都做不到6极简的 api 设计让开发者 不再迷糊1. 单表 Fetch 注解 fetchFilter 方法DataResultEntity(SysUser.class) public class SysUserVo {private Integer id;private String userName;private String password;private Integer roleId;private LocalDateTime create_time;Fetch(source SysUser.class, property roleId, target SysRole.class, targetProperty id)private List sysRoles;}List list QueryChain.of(sysUserMapper).from(SysUser.class).fetchFilter(SysUserVO::getRoles,where-where.eq(SysRole::getStatus,1)).returnType(SysUserVO.class).list();fetchFilter 方法是对 Fetch 注解的增强没有特殊要求一般可忽略2. 单表查询SysUser sysUser QueryChain.of(sysUserMapper).eq(SysUser::getId, 1).eq(SysUser::getUserName,admin).get();3.VO 映射DataResultEntity(SysUser.class) public class SysUserVo {private Integer id;private String userName;_//字段名字不一样时_ResultEntityField(property password)private String pwd;}SysUserVO sysUserVO QueryChain.of(sysUserMapper).eq(SysUser::getId, 1).eq(SysUser::getUserName,admin).returnType(SysUserVO.class).list();4. join 查询DataResultEntity(SysUser.class) public class SysUserVo {private Integer id;private String userName;_//字段名字不一样时_ResultEntityField(property password)private String pwd;_//映射一个对象 1 对 1_NestedResultEntity(target SysRole.class)prviate SysRole sysRole;_//映射多个对象 1 对多_NestedResultEntity(target SysRole.class)prviate List sysRoles;}List list QueryChain.of(sysUserMapper).from(SysUser.class).join(SysUser.class, SysRole.class).returnType(SysUserRoleVO.class).list();还有很多很多超级方便有趣的写法欢迎大家来使用例如1 . 多表 join A 内嵌 B B 内嵌 C 都可以2 . 不使用 join 使用 Fetch 注解 fetchFilter 方法实现 将 A JOIN B 变成 query A query B3 . 使用 Paging 注解 实现你的 xml 自动分页4 . 使用 SQL 模板让你 ORM 更简单更容易扩展再也不怕被框架限制了

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号