finds.dev← search

// the find

baomidou/mybatis-plus

★ 17,391 · Java · Apache-2.0 · updated Jun 2026

An powerful enhanced toolkit of MyBatis for simplify development

MyBatis-Plus is a Spring/MyBatis extension that adds CRUD boilerplate elimination, a type-safe query wrapper API, pagination, and code generation on top of vanilla MyBatis. It's for Java teams already committed to MyBatis who want JPA-like convenience without switching ORMs. Primarily a Chinese-ecosystem project with 17k stars, heavy adoption in enterprise Spring Boot apps in China.

The LambdaQueryWrapper gives you refactor-safe, compile-checked queries — `new LambdaQueryWrapper<User>().ge(User::getAge, 18)` is meaningfully better than string-based column names. Automatic fill (`@TableField(fill = FieldFill.INSERT)`) and optimistic locking (`@Version`) are first-class, not bolted on. The pagination plugin handles MySQL, PostgreSQL, Oracle, and a dozen others by inspecting the configured DbType rather than requiring per-dialect boilerplate. SpringBoot4 support shipped in 3.5.13, meaning it tracks Spring releases faster than many comparable tools.

The enterprise features (data permission interceptors, field encryption, multi-tenant at the SQL level) are paywalled behind Mybatis-Mate, which is a commercial product with no public pricing — you discover this when you need it. Documentation is primarily in Chinese; the English docs are a translation that lags and has gaps, so non-Chinese readers hit walls on anything beyond the basics. The QueryWrapper and LambdaQueryWrapper share state in non-obvious ways — chaining conditions across method boundaries or reusing a wrapper instance causes silent bugs that are hard to trace. No real migration story if you want to move to JOOQ or Spring Data JPA later; the BaseMapper methods bleed into your repository interfaces and become load-bearing fast.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →