Skip to content

数据访问

LCGYL Framework 提供了完整的数据访问层解决方案,包括 JDBC、JPA、MyBatis-Plus 等多种 ORM 框架支持。

插件清单

关系型数据库

插件说明适用场景
lcgyl-jdbc-plugin基础 JDBC,支持 SQLite/PostgreSQL/MySQL原生 SQL、简单查询
lcgyl-jpa-pluginJPA/Hibernate ORM标准 ORM、实体映射
lcgyl-mybatis-pluginMyBatis-Plus ORM灵活 SQL、复杂查询

NoSQL & 缓存

插件说明适用场景
lcgyl-cache-plugin本地缓存单机缓存
lcgyl-redis-pluginRedis 客户端分布式缓存/会话
lcgyl-mongo-pluginMongoDB文档型存储

功能对比

功能jdbc-pluginjpa-pluginmybatis-plugin
原生 SQL
ORM 映射
实体基类
审计字段
分页查询
逻辑删除
连接池✅ HikariCP

核心特性

  • 多数据源支持:MySQL、PostgreSQL、SQLite 等
  • 连接池管理:HikariCP 高性能连接池
  • 事务管理:声明式和编程式事务
  • ORM 框架:JPA/Hibernate、MyBatis-Plus
  • 审计功能:自动填充创建/更新时间
  • 批处理:高效的批量操作

快速开始

1. 配置数据源

properties
# application.properties

# 数据源配置
datasource.url=jdbc:mysql://localhost:3306/lcgyl?useSSL=false&serverTimezone=UTC
datasource.username=root
datasource.password=123456
datasource.driverClassName=com.mysql.cj.jdbc.Driver

# 连接池配置
datasource.pool.maxSize=20
datasource.pool.minSize=5
datasource.pool.maxWait=30000
datasource.pool.testQuery=SELECT 1

2. 创建数据源

java
import com.lcgyl.data.DataSource;
import com.lcgyl.data.DataSourceBuilder;

public class DataSourceExample {
    
    public static void main(String[] args) {
        // 创建数据源
        DataSource dataSource = DataSourceBuilder.create()
            .url("jdbc:mysql://localhost:3306/lcgyl")
            .username("root")
            .password("123456")
            .maxPoolSize(20)
            .minPoolSize(5)
            .build();
        
        // 使用数据源
        try (Connection conn = dataSource.getConnection()) {
            // 执行数据库操作
        }
    }
}

3. 基本查询

java
import com.lcgyl.data.JdbcTemplate;

public class QueryExample {
    
    private final JdbcTemplate jdbcTemplate;
    
    public QueryExample(DataSource dataSource) {
        this.jdbcTemplate = new JdbcTemplate(dataSource);
    }
    
    public User findById(Long id) {
        String sql = "SELECT * FROM users WHERE id = ?";
        return jdbcTemplate.queryForObject(sql, User.class, id);
    }
    
    public List<User> findAll() {
        String sql = "SELECT * FROM users";
        return jdbcTemplate.queryForList(sql, User.class);
    }
}

下一步

示例代码

查看完整的示例代码:数据访问示例

Released under the Apache License 2.0