🚀 xbatis:从新定义 MyBatis 开辟体验

写在前面

还在为繁琐的 MyBatis XML 设备而懊末路吗?还在为 SQL 注入风险而担心吗?xbatis 横空出世,让 Java 数据库开辟再次变得优雅!


💡 为什么选择 xbatis?

🎯 三大年夜核心价值

少写 SQL - 链式 DSL 让代码如诗如画 1

// 拜别 XML,拥抱类型安然List users = QueryChain.of(sysUserMapper)    .eq(SysUser::getId, 1)    .like(SysUser::getUserName, "admin")    .forSearch(true)    .list();
// 多表接洽关系、分组统计、子查询,一行搞定SysUserRoleVo vo = QueryChain.of(sysUserMapper)    .select(SysUser.class, SysRole.class)    .from(SysUser.class)    .join(SysUser::getRoleId, SysRole::getId)    .eq(SysUser::getId, 1)    .groupBy(SysUser::getId)    .having(SysUser::getId, c -> c.count().gt(0))    .returnType(SysUserRoleVo.class)    .get();

支撑 MySQL、PostgreSQL、Oracle、SQL Server、达梦、人大年夜金仓等 12+ 数据库!


🚀 五大年夜杀手级特点

1. 🤖 主动 SQL 优化

智能移除冗余 JOIN、优化 COUNT 查询、主动调剂 ORDER BY 4

零侵入设计 - 对 MyBatis 仅做封装,不修改核心 7

// 框架主动优化,机能晋升 30%+QueryChain.of(sysUserMapper)    .select(SysUser::getId, SysUser::getUserName)    .leftJoin(SysUser::getRoleId, SysRole::getId)  // 未应用时主动移除    .count();  // 主动转换为 SELECT COUNT(*)

2. 🎯 单 Mapper 模式

跨数据库兼容 - 一套代码,处处运行 3

一个 BasicMapper 横跨全部实体,拜别接口爆炸 5

// 全项目只需一个 Mapper@Autowiredprivate MybatisBasicMapper mapper;// 通用 CRUD,类型安然mapper.save(new SysUser());mapper.deleteById(SysUser.class, 1);

3. ⚡ 内置 RETURNING 支撑

链路化 DSL - 复杂查询趁热打铁 2

更新删除即时返回,无需额外查询 6

// 删除并返回被删除的数据List removed = DeleteChain.of(sysUserMapper)    .in(SysUser::getId, 1, 2)    .returning(SysUser.class)    .executeAndReturningList();

4. 🛡️ 企业级特点开箱即用

  • 多租户隔离:@TenantId 主动过滤
  • 逻辑删除:@LogicDelete 软删除支撑
  • 乐不雅锁:@Version 防并发冲突
  • 审计字段:@OnInsert@OnUpdate 主动填充

5. 🔧 完美兼容现有项目

<!-- 只需调换依附,现有代码无需修改 -->    cn.xbatis    xbatis-spring-boot3-starter    1.9.3

📊 机能比较

特点 原生 MyBatis MyBatis-Plus xbatis 类型安然 ❌ ✅ ✅ 主动优化 ❌ ❌ ✅ 单 Mapper ❌ ❌ ✅ RETURNING ❌ 部分 ✅ 进修成本 中 中 低

🎁 急速体验

快速开端

// 1. 实体类@Tablepublic class SysUser {    @TableId    private Integer id;    private String userName;}// 2. Mapper 接口public interface SysUserMapper extends MybatisMapper {}// 3. 开端应用@Autowiredprivate SysUserMapper mapper;// 链式查询,优雅至极List users = QueryChain.of(mapper)    .like(SysUser::getUserName, "admin")    .list();

更多资本

  • 🌐 官方网站:https://xbatis.cn
  • 📚 具体文档:https://deepwiki.com/xbatis/xbatis
  • 💻 Gitee 仓库:https://gitee.com/xbatis/xbatis
  • 🔄 GitHub 镜像:https://github.com/xbatis/xbatis

🤝 参加我们

xbatis 正在快速成长,我们须要你的力量:

  • 🐛 发明 Bug?提交 Issue 赞助改进
  • 💡 有好设法主意?迎接提交 PR
  • 📝 善于写作?供献文档和教程
  • 🎤 酷爱分享?成为社区推广大年夜使

🔮 将来瞻望

  • IDE 插件开辟中,智能提示即将到来
  • 更多半据库适配器持续完美
  • 企业级最佳实践案例集即将宣布
  • 国际化社区扶植周全启动

xbatis 不只是一个框架,更是 Java 数据库开辟的将来!


急速体验 xbatis,让数据拜访再次变得简单而优雅!

Notes

  • 文章凸起了 xbatis 的差别化优势,特别是主动 SQL 优化和单 Mapper 模式
  • 应用了大年夜量实际代码示例,展示链式 DSL 的优雅性
  • 强调了零侵入设计,降低用户迁徙成本
  • 包含了完全的快速开端指南和资本链接
  • 呼吁开辟者介入社区扶植,形成推广合力

File: README.zh-CN.md (L17-17)

- **定位**:xbatis 基于 MyBatis,实现高度 ORM 化的数据库操作体验,强调“少写 SQL、链路化 DSL、跨数据库兼容”。

Wiki pages you might want to explore:

  • Overview (xbatis/xbatis)

Citations

File: README.zh-CN.md (L19-20)

    - 多表接洽关系、子查询、链路分页、主动 SQL 优化(主动移除冗余 `LEFT JOIN`、`ORDER BY`,智能 `COUNT` 化简)。    - 内置 `RETURNING` 支撑、批量插入与批量更新链路、原生函数包装、SQL 模板。

File: README.zh-CN.md (L21-21)

    - 单 Mapper 模式,支撑一个 `BasicMapper` 横跨全部实体。

File: README.zh-CN.md (L25-25)

    1. 极致轻量:对 MyBatis 仅做封装而非侵入式改革。

File: README.zh-CN.md (L605-617)

```javaSysUserRoleVo vo = QueryChain.of(sysUserMapper)    .select(SysUser.class, SysRole.class)    .from(SysUser.class)    .join(SysUser::getRoleId, SysRole::getId)    .eq(SysUser::getId, 1)    .like(SysUser::getUserName, "abc")    .groupBy(SysUser::getId)    .having(SysUser::getId, c -> c.count().gt(0))    .orderBy(SysUser::getId)    .returnType(SysUserRoleVo.class)    .get();

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部