广泛的数据库支持
覆盖多种关系型数据库方言,并通过 JDBC 驱动适配器支持 NoSQL 和向量数据库
MySQL
PostgreSQL
Oracle
SQL Server
DB2
ClickHouse
TiDB
OceanBase
DM
StarRocks
Doris
Redis
MongoDB
Elasticsearch
Milvus
核心理念
使用不同层面的 API 来解决不同层面的问题,尊重数据源差异,管理数据源差异。
🔗
统一 APIs
编程式、声明式、Mapper、XML File 等 5 种 APIs
📐
双层适配架构
应用访问层、标准驱动层、独立演进、独立使用
🧩
零耦合
可复杂、可简单、自由集成、任意使用
双层适配架构
应用层管理查询方式差异,协议层管理通信协议差异

5 种 API 风格
选择最适合场景的 API,所有风格共享同一套底层运行机制。
JdbcTemplate.java
JdbcTemplate jdbc = new JdbcTemplate(dataSource); // 查询映射到 Bean List<User> users = jdbc.queryForList( "select * from users where age > ?", User.class, new Object[] { 18 } ); // 查询单值 Long total = jdbc.queryForObject( "select count(*) from users", Long.class );
同一套 API,不同的数据库
无论底层是 MySQL 还是 MongoDB,上层代码保持一致
MySQL / PostgreSQL
// 连接关系型数据库 Configuration config = new Configuration(); LambdaTemplate t = config.newLambda(ds); // Lambda 查询 List<User> users = t .lambdaQuery(User.class) .eq(User::getAge, 18) .list();
MongoDB / Elasticsearch
// 连接 NoSQL 数据库(同一套 API) Configuration config = new Configuration(); LambdaTemplate t = config.newLambda(ds); // 完全相同的 Lambda 查询 List<User> users = t .lambdaQuery(User.class) .eq(User::getAge, 18) .list();