推荐理由强、强、强单表、连表操作不想连表也不怕直接少写 1/3 甚至 2/3 的持久层代码API 简单、快捷、优雅、简洁构建 SQL 能力超强用过和没用过的都来体验即便有了 AI真正好用的 ORM 仍不可忽视除非以后不维护。1.10.5 - 2026-06-21- 修复插入数据时未拼上Table的schema的问题。- 增加[局部某个表leftJoin禁止优化](https://xbatis.cn/zh-CN/intro/sql-optimize.html#%E5%A6%82%E6%9E%9C%E5%A6%82%E4%BD%95%E5%85%B3%E9%97%AD-sql%E4%BC%98%E5%8C%96)的功能。- 其他优化。- 增加[SQL审计](https://xbatis.cn/zh-CN/function/core/audit.html)。1.10.3 - 2026-05-27- [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)。- 数据库识别支持 p6spy jdbc url 格式。- [其他优化 表名 /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)非分表行为。- crud 支持自己创建的 lambda getter 方法引用例如: .eq(EntityLambdaUtil.createSetter(SysUser.class, id), 1)。- 修复单列 Fetch 数据库为 null 时运行异常的问题。- [增加 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)。- [增加 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)。- [新增 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)。- [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-29- [实现 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)。- in/notIn 单条时变成 eq/ne 行为。- 其他优化。1.10.1 - 2026-04-27- 优化 Fetch 功能代码。- [实现 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 创建。- [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-18- 修复主动调用了 fetchFilter/fetchEnable 时可能出现报错的问题未使用 fetchFilter/fetchEnable 的不影响。1.9.9 - 2026-04-13- [增加 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)。- [原生 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)。- LambdaUtil 类增加 setter/getter Lambda 生成方法。- [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)。- 修复 exists/notExists 中子查询嵌套子查询时别名一致导致无法上下级引用的问题。- 增加 [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)。- 所有 Mp 开头的类 改为 Xbatis 开头。- 优化 selectIgnore 功能不再要求先 select。- 增加 orderByAsc 方法减少从 mybatis-plus 迁移到 xbatis 的工作量。- 优化底层代码。- [增加 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)。- 所有查询完美兼容 pageHelper。- 对于顶级类的字段增加列为为字段名的 resultMap 映射。- 支持[多列 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)。- [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 (实体类别名) 方法用于自定义表名别名。2. XbatisConfig 改为 XbatisGlobalConfig。3. 增加[逻辑删除拦截器](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。java SysUser user sysUserMapper.select(SysUser.class, select * from t_sys_user where id ?, 1);- 支持增删改且支持返回数据。java String user_name sysUserMapper.executeAndReturning(String.class, update t_sys_user set user_name? where id1 RETURNING user_name, xxx);- ORM 写法 删除并返回被删除的数据数据库原生操作。java List list DeleteChain.of(sysUserMapper) .in(SysUser::getId, 1, 2) .returning(SysUser.class) .returnType(SysUser.class) .executeAndReturningList();- ORM 写法 修改并返回修改后的数据数据库原生操作适合金额加减操作返回剩余金额。java SysUser sysUser UpdateChain.of(sysUserMapper) .eq(SysUser::getId, 1) .set(SysUser::getUserName, abc2) .returning(SysUser.class) .returnType(SysUser.class) .executeAndReturning();分表配置java Data SplitTable(SysUserSplitter.class) public class SysUser { TableId private Integer id; SplitTableKey private Integer groupId; private String nickname; private String username; }java public class SysUserSplitter implements TableSplitter { Override public boolean support(Class type) { return type Integer.class || type int.class; } Override public String split(String sourceTableName, Object splitValue) { Integer groupId (Integer) splitValue; //分成10个表 return sourceTableName _ groupId % 10; } }分表就是这么简单其他操作和常规无异1.7.7 更新内容- QueryChain、DeleteChain、InsertChain、UpdateChain 支持 BasicMapper 方法。- 支持通用 BasicMapper可不需要创建多个实体类 Mapper一个 BasicMapper 即可使用所有功能。- 正式支持单 Mapper (写一个 Mapper 即可)。为什么推荐 xbatisxbatis 是一款超级强大的 ORM 框架1. 可多表 join不再只能单表了。2. 代码分页xml 还可以分页可以不用 pagehelper 了。3. 良好的扩展能力ormsql 模板 让 ORM 框架不再死板扩展性极强。4. 强大的各种数据库适配可在一套代码中 实现多个数据库适配真正的 ORM hibernate 都做不到。6. 极简的 api 设计让开发者 不再迷糊。1. 单表 Fetch 注解 fetchFilter 方法java Data ResultEntity(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; }java List list QueryChain.of(sysUserMapper) .from(SysUser.class) .fetchFilter(SysUserVO::getRoles,where-where.eq(SysRole::getStatus,1)) .returnType(SysUserVO.class) .list();fetchFilter 方法是对 Fetch 注解的增强没有特殊要求一般可忽略。2. 单表查询java SysUser sysUser QueryChain.of(sysUserMapper) .eq(SysUser::getId, 1) .eq(SysUser::getUserName,admin) .get();3. VO 映射java Data ResultEntity(SysUser.class) public class SysUserVo { private Integer id; private String userName; //字段名字不一样时 ResultEntityField(property password) private String pwd; }java SysUserVO sysUserVO QueryChain.of(sysUserMapper) .eq(SysUser::getId, 1) .eq(SysUser::getUserName,admin) .returnType(SysUserVO.class) .list();4. join 查询java Data ResultEntity(SysUser.class) public class SysUserVo { private Integer id; private String userName; //字段名字不一样时 ResultEntityField(property password) private String pwd; //映射一个对象 1对1 NestedResultEntity(target SysRole.class) private SysRole sysRole; //映射多个对象 1对多 NestedResultEntity(target SysRole.class) private List sysRoles; }java List list QueryChain.of(sysUserMapper) .from(SysUser.class) .join(SysUser.class, SysRole.class) .returnType(SysUserRoleVO.class) .list();还有很多很多超级方便有趣的写法欢迎大家来使用[https://xbatis.cn](https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.oschina.net%2Faction%2FGoToLink%3Furl%3Dhttps%253A%252F%252Fxbatis.cn)例如1. 多表 join A 内嵌 B B 内嵌 C 都可以。2. 不使用 join 使用 Fetch 注解 fetchFilter 方法实现 将 A JOIN B 变成 query A query B。3. 使用 Paging 注解 实现你的 xml 自动分页。4. 使用 SQL 模板让你 ORM 更简单更容易扩展再也不怕被框架限制了。