数据访问插件
LCGYL Framework 提供了完整的数据访问解决方案,支持多种 ORM 框架和数据库。
插件选择指南
如何选择?
需要数据库访问?
│
┌──────────────┼──────────────┐
▼ ▼ ▼
原生 SQL 需要 ORM 需要 NoSQL
│ │ │
▼ ┌────┴────┐ ▼
jdbc-plugin ▼ ▼ mongo/redis
JPA MyBatis
│ │
标准规范 灵活 SQL对比表
| 功能 | jdbc | jpa | mybatis |
|---|---|---|---|
| 原生 SQL | ✅ | ✅ | ✅ |
| ORM 映射 | ❌ | ✅ | ✅ |
| 实体基类 | ❌ | ✅ | ✅ |
| 审计字段 | ❌ | ✅ | ✅ |
| 分页查询 | ❌ | ✅ | ✅ |
| 逻辑删除 | ❌ | ❌ | ✅ |
| Lambda 查询 | ❌ | ❌ | ✅ |
| 连接池 | HikariCP | HikariCP | HikariCP |
| 学习成本 | 低 | 中 | 中 |
| 灵活性 | 高 | 中 | 高 |
推荐场景
| 场景 | 推荐插件 | 原因 |
|---|---|---|
| 简单 CRUD | jpa-plugin | 开箱即用 |
| 复杂查询 | mybatis-plugin | SQL 灵活 |
| 遗留系统 | jdbc-plugin | 原生 SQL |
| 高并发读 | redis-plugin | 缓存 |
| 文档存储 | mongo-plugin | 灵活 Schema |
快速开始
JDBC(最简单)
gradle
implementation project(':plugins:data-access:lcgyl-jdbc-plugin')java
DataSource ds = DataSourceFactory.create("jdbc:sqlite:test.db");
JdbcTemplate jdbc = new JdbcTemplate(ds);
jdbc.update("INSERT INTO users (name) VALUES (?)", "张三");JPA(标准 ORM)
gradle
implementation project(':plugins:data-access:lcgyl-jpa-plugin')java
@Entity
public class User extends BaseEntity<Long> {
private String name;
}
public interface UserRepository extends BaseRepository<User, Long> {}MyBatis-Plus(灵活 SQL)
gradle
implementation project(':plugins:data-access:lcgyl-mybatis-plugin')java
@TableName("users")
public class User extends BaseEntity {}
// Lambda 查询
userService.lambdaQuery()
.eq(User::getStatus, "active")
.list();插件文档
- JDBC 插件 - 基础数据库访问
- JPA 插件 - JPA/Hibernate ORM
- MyBatis 插件 - MyBatis-Plus ORM
- Cache 插件 - 本地缓存
- Redis 插件 - Redis 客户端
- MongoDB 插件 - MongoDB 访问
通用配置
数据源配置
yaml
lcgyl:
datasource:
url: jdbc:postgresql://localhost:5432/mydb
username: postgres
password: postgres
pool:
max-size: 20
min-size: 5支持的数据库
| 数据库 | 驱动 |
|---|---|
| PostgreSQL | org.postgresql:postgresql |
| MySQL | com.mysql:mysql-connector-j |
| SQLite | org.xerial:sqlite-jdbc |
| Oracle | com.oracle.database.jdbc:ojdbc11 |
| SQL Server | com.microsoft.sqlserver:mssql-jdbc |