跳到主要内容

4.3 框架对比

客观对比 DLZ-DB 与主流 ORM 框架

核心特性对比

特性DLZ-DBMyBatis-PlusMyBatisJPAJOOQ
无需 Mapper 接口
无需 XML⚠️
Lambda 表达式
链式操作⚠️
逻辑删除✅ 自动✅ 需配置
SQL 代码定位✅ 独家
结果深度取值✅ 独家
预设 SQL 管理⚠️
自动建表

代码量对比(用户 CRUD + 复杂查询)

框架文件数代码行数
DLZ-DB2130
MyBatis-Plus5285
MyBatis6420
JPA5305
JOOQ5280

查询 API 对比

// DLZ-DB
User user = DB.Pojo.select(User.class).eq(User::getId, 1L).queryBean();
List<User> users = DB.Pojo.select(User.class)
.eq(User::getStatus, 1)
.like(User::getName, "张")
.queryBeanList();

// MyBatis-Plus
User user = userMapper.selectById(1L);
List<User> users = userMapper.selectList(
new LambdaQueryWrapper<User>()
.eq(User::getStatus, 1)
.like(User::getName, "张")
);

// JPA
User user = userRepository.findById(1L).orElse(null);
List<User> users = userRepository.findByStatusAndNameLike(1, "%张%");

启动速度对比

框架启动时间原因
DLZ-DB~3 秒无需加载 Mapper/XML
MyBatis-Plus~12 秒需扫描 Mapper
MyBatis~16 秒需解析 XML
JPA~18 秒需扫描实体
JOOQ~8 秒需生成代码