Version v0.32 of the documentation is no longer actively maintained. The site that you are currently viewing is an archived snapshot. For up-to-date documentation, see the latest version.

ダイアレクト

概要

ダイアレクトはデータベースやドライバの差異を吸収します。 ダイアレクトの代表的な機能はKotlinとデータベースの型の対応関係を解決することです。

ダイアレクトを表すクラスは個別のモジュール(Artifact)に含まれており、 どのモジュールを利用するかは接続先データベースや接続タイプに合わせて選択する必要があります。

Database Type Artifact ID Dialect Class
H2 Database Engine JDBC komapper-dialect-h2-jdbc JdbcH2SqlDialect
H2 Database Engine R2DBC komapper-dialect-h2-r2dbc R2dbcH2SqlDialect
MariaDB JDBC komapper-dialect-mariadb-jdbc JdbcMariadbDialect
MySQL JDBC komapper-dialect-mysql-jdbc JdbcMySqlDialect
Oracle Database JDBC komapper-dialect-oracle-jdbc JdbcOracleDialect
Oracle Database R2DBC komapper-dialect-oracle-r2dbc R2dbcOracleDialect
PostgreSQL JDBC komapper-dialect-postgresql-jdbc JdbcPostgreSqlDialect
PostgreSQL R2DBC komapper-dialect-postgresql-r2dbc R2dbcPostgreSqlDialect
SQL Server JDBC komapper-dialect-sqlserver-jdbc JdbcSqlServerDialect
SQL Server R2DBC komapper-dialect-sqlserver-r2dbc R2dbcSqlServerDialect

ダイアレクトを利用するにはGradleの依存関係の宣言の中で上述のArtifact IDを記述します。

val komapperVersion: String by project
dependencies {
    implementation("org.komapper:komapper-dialect-h2-jdbc:$komapperVersion")
}

kotlinx-datetimeのサポート

Komapperは kotlinx-datetime の以下のデータ型をサポートします。

  • kotlinx.datetime.Instant
  • kotlinx.datetime.LocalDate
  • kotlinx.datetime.LocalDateTime

これらの型を利用するには、Gradleの依存関係の宣言で次のように宣言してください。

dependencies {
    implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.3.2")
}

また、komapper-datetime-jdbcもしくはkomapper-datetime-r2dbcを追加してください。

val komapperVersion: String by project
dependencies {
    runtimeOnly("org.komapper:komapper-datetime-jdbc:$komapperVersion")
}

H2 - JDBC

データ型の対応関係

H2 - R2DBC

データ型の対応関係

MariaDB - JDBC

データ型の対応関係

MySQL - JDBC

データ型の対応関係

Oracle - JDBC

データ型の対応関係

Oracle - R2DBC

データ型の対応関係

PostgreSQL - JDBC

データ型の対応関係

PostgreSQL - R2DBC

データ型の対応関係

SQL Server - JDBC

データ型の対応関係

SQL Server - R2DBC

データ型の対応関係

最終更新 April 8, 2022: Change data type mapping (e6307c9)