このプロジェクトについて
Exposedは、JetBrainsの公式プロジェクトであり、Kotlinプログラミング言語向けの軽量なSQLライブラリおよびORMフレームワークです。データベース接続ドライバー上に構築されており、JDBCとR2DBC(バージョン1.0.0以降)の両方のドライバーをサポートし、データベースアクセスのための2つの異なるアプローチを提供します:型安全な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 Boot統合スターターとSpring Frameworkトランザクションマネージャーが含まれます。
要件には、ほとんどのモジュールでKotlin 2.2+およびJDK 8+が含まれ、R2DBC関連モジュールではJDK 11+、Spring関連モジュールとexposed-cryptではJDK 17+が必要です。
DSLアプローチでは、開発者は型付きカラムを持つKotlinオブジェクトとしてテーブルを定義し、CRUD操作の実行、結合、SQL関数の使用、group-by句の適用をすべてコンパイル時の型安全性で行うことができます。DAOアプローチでは、クエリ用のコンパニオンオブジェクトを持つエンティティクラスを提供し、遅延ロードされたリレーションシップとリファラーをサポートします。
リリースはMaven Centralのorg.jetbrains.exposed名前空間で利用可能です。プロジェクトはApache License 2.0の下でライセンスされており、JetBrains YouTrackのイシューにリンクされたプルリクエストによる貢献を歓迎しています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.