这个项目能做什么

Exposed 是 JetBrains 官方项目,为 Kotlin 编程语言提供轻量级 SQL 库和 ORM 框架。它建立在数据库连接驱动之上,支持 JDBC 和 R2DBC(自 1.0.0 版本起),提供两种不同的数据库访问方式:类型安全的 SQL 封装领域特定语言(DSL)和轻量级数据访问对象(DAO)API。 该项目的吉祥物是乌贼,选择它是因其能模拟各种环境——类似于 Exposed 能够适应多种数据库引擎,使开发者能够构建不依赖特定数据库的应用,并以最少的更改在它们之间切换。 支持的数据库包括 H2 (2.x)、MariaDB、MySQL、Oracle、PostgreSQL(包括 pgjdbc-ng)、Amazon Redshift(仅 JDBC)、Microsoft SQL Server 和 SQLite。 该框架分为核心模块:exposed-core 提供基础组件和 DSL API;exposed-dao(可选)启用 DAO API,仅与 exposed-jdbc 兼容;exposed-jdbc 提供 JDBC 传输层实现;exposed-r2dbc 提供反应式关系数据库连接支持。 扩展模块涵盖附加功能,包括加密数据存储(exposed-crypt)、通过 Java 8 Time API、Joda-Time 和 kotlinx-datetime 处理日期时间、JSON/JSONB 数据类型(exposed-json)、货币金额(exposed-money)、数据库模式迁移(exposed-migration-core、exposed-migration-jdbc、exposed-migration-r2dbc),以及适用于 Spring Boot 3 和 4 的集成启动器,连同 Spring Framework 事务管理器。 要求包括大多数模块需要 Kotlin 2.2+ 和 JDK 8+,R2DBC 相关模块需要 JDK 11+,Spring 相关模块和 exposed-crypt 需要 JDK 17+。 DSL 方法允许开发者将表定义为具有类型列的 Kotlin 对象,执行 CRUD 操作、连接查询、使用 SQL 函数和应用分组子句——所有操作均具备编译时类型安全。DAO 方法提供带有伴生对象用于查询的实体类,支持延迟加载的关系和引用。 发布版本可在 Maven Central 的 org.jetbrains.exposed 命名空间下获取。该项目采用 Apache License 2.0 许可,并欢迎通过链接到 JetBrains YouTrack 问题的拉取请求进行贡献。