Skip to content

yjydmlh/spring-data-jdbc-orm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring Data JDBC Type-Safe ORM

一个基于Spring Data JDBC的类型安全ORM框架,提供零SQL编写的开发体验。

🚀 核心特性

  • 类型安全:编译时类型检查,避免运行时SQL错误
  • 零SQL编写:通过Lambda表达式构建查询,无需手写SQL
  • 多数据源支持:灵活的多数据源配置和动态切换
  • 智能路由:基于规则的数据源自动选择
  • 通用RowMapper:自动处理复杂数据类型映射
  • Spring Boot集成:开箱即用的自动配置

📋 系统要求

  • Java 8+
  • Spring Boot 2.7.x+
  • Spring Data JDBC 2.4.x+

🎯 快速开始

添加依赖

<dependency>
    <groupId>io.flex.data</groupId>
    <artifactId>flex-data-orm</artifactId>
    <version>1.0.0</version>
</dependency>

基础配置

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/testdb
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver

创建实体和Repository

@Table("users")
public class User {
    @Id
    private Long id;
    private String userName;
    private String email;
    // getter和setter...
}

@Repository
public interface UserRepository extends TypeSafeRepository<User, Long> {
    // 继承所有基础CRUD方法
}

类型安全查询示例

// 基础查询
public List<User> findActiveUsers() {
    return userRepository.findBy(
        criteria -> criteria.eq(User::getStatus, "ACTIVE")
                          .gt(User::getAge, 18)
    );
}

📚 高级功能

多数据源支持

框架支持动态多数据源切换,实现读写分离、数据库分片等企业级特性。

手动指定库名和表名

框架完全支持开发者手动指定数据源(库名)和表名,提供灵活的数据路由能力。

高级查询功能

  • 窗口函数查询 - 支持ROW_NUMBER、RANK、SUM等窗口函数
  • CTE(公共表表达式) - 支持递归查询和复杂子查询
  • 批量操作 - 高性能批量插入、更新、删除

📖 完整文档

多数据源

数据库支持

🧪 测试

# 运行所有测试
mvn test

# 运行特定测试
mvn test -Dtest=ComplexSqlTest

🤝 贡献

欢迎提交Issue和Pull Request来帮助改进这个项目!

📄 许可证

本项目采用 Apache License 2.0 许可证。


SQL支持程度: 约 85% 的常用SQL功能 | 数据库支持: MySQL, PostgreSQL | Java版本: 8+

About

another Java orm based on spring-data-jdbc

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages