Version v0.29 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.
Dialect
方言
概要
方言はデータベースやドライバの差異を吸収します。 方言の代表的な機能は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")
}
H2 - JDBC
データ型の対応関係を示します。
| Kotlin Type | Database Type |
|---|---|
| java.math.BigDecimal | BIGINT |
| java.math.BigInteger | BIGINT |
| java.sql.Array | ARRAY |
| java.sql.Blob | BLOB |
| java.sql.Clob | CLOB |
| java.sql.NClob | CLOB |
| java.sql.SQLXML | CLOB |
| java.time.LocalDate | DATE |
| java.time.LocalDateTime | TIMESTAMP |
| java.time.LocalTime | TIME |
| java.time.OffsetDateTime | TIMESTAMP WITH TIME ZONE |
| java.util.UUID | UUID |
| kotlin.Any | OTHER |
| kotlin.Boolean | BOOLEAN |
| kotlin.Byte | TINYINT |
| kotlin.ByteArray | BINARY |
| kotlin.Double | DOUBLE |
| kotlin.Float | REAL |
| kotlin.Int | INT |
| kotlin.Long | BIGINT |
| kotlin.Short | SMALLINT |
| kotlin.String | VARCHAR |
| kotlin.UByte | SMALLINT |
| kotlin.UInt | BIGINT |
| kotlin.UShort | INT |
| enum class | VARCHAR |
H2 - R2DBC
データ型の対応関係を示します。
| Kotlin Type | Database Type |
|---|---|
| io.r2dbc.spi.Blob | Blob |
| io.r2dbc.spi.Clob | Clob |
| java.math.BigDecimal | BIGINT |
| java.math.BigDecimal | BIGINT |
| java.math.BigInteger | BIGINT |
| java.time.LocalDate | DATE |
| java.time.LocalDateTime | TIMESTAMP |
| java.time.LocalTime | TIME |
| java.time.OffsetDateTime | TIMESTAMP WITH TIME ZONE |
| java.util.UUID | UUID |
| kotlin.Any | OTHER |
| kotlin.Boolean | BOOLEAN |
| kotlin.Byte | TINYINT |
| kotlin.ByteArray | BINARY |
| kotlin.Double | DOUBLE |
| kotlin.Float | REAL |
| kotlin.Int | INT |
| kotlin.Long | BIGINT |
| kotlin.Short | SMALLINT |
| kotlin.String | VARCHAR |
| kotlin.UByte | SMALLINT |
| kotlin.UInt | BIGINT |
| kotlin.UShort | INT |
| enum class | VARCHAR |
MariaDB - JDBC
データ型の対応関係を示します。
| Kotlin Type | Database Type |
|---|---|
| java.math.BigDecimal | DECIMAL |
| java.math.BigInteger | DECIMAL |
| java.sql.Array | N/A |
| java.sql.Blob | BLOB |
| java.sql.Clob | TEXT |
| java.sql.NClob | TEXT |
| java.sql.SQLXML | TEXT |
| java.time.LocalDate | DATE |
| java.time.LocalDateTime | TIMESTAMP(6) |
| java.time.LocalTime | TIME |
| java.time.OffsetDateTime | TIMESTAMP |
| java.util.UUID | N/A |
| kotlin.Any | N/A |
| kotlin.Boolean | BIT(1), BOOLEAN |
| kotlin.Byte | TINYINT |
| kotlin.ByteArray | VARBINARY |
| kotlin.Double | DOUBLE |
| kotlin.Float | FLOAT |
| kotlin.Int | INT |
| kotlin.Long | BIGINT |
| kotlin.Short | SMALLINT |
| kotlin.String | VARCHAR |
| kotlin.UByte | SMALLINT |
| kotlin.UInt | BIGINT |
| kotlin.UShort | INT |
| enum class | VARCHAR |
MySQL - JDBC
データ型の対応関係を示します。
| Kotlin Type | Database Type |
|---|---|
| java.math.BigDecimal | DECIMAL |
| java.math.BigInteger | DECIMAL |
| java.sql.Array | N/A |
| java.sql.Blob | BLOB |
| java.sql.Clob | TEXT |
| java.sql.NClob | TEXT |
| java.sql.SQLXML | TEXT |
| java.time.LocalDate | DATE |
| java.time.LocalDateTime | TIMESTAMP(6) |
| java.time.LocalTime | TIME |
| java.time.OffsetDateTime | TIMESTAMP |
| java.util.UUID | N/A |
| kotlin.Any | N/A |
| kotlin.Boolean | BIT(1), BOOLEAN |
| kotlin.Byte | TINYINT |
| kotlin.ByteArray | VARBINARY |
| kotlin.Double | DOUBLE |
| kotlin.Float | FLOAT |
| kotlin.Int | INT |
| kotlin.Long | BIGINT |
| kotlin.Short | SMALLINT |
| kotlin.String | VARCHAR |
| kotlin.UByte | SMALLINT |
| kotlin.UInt | BIGINT |
| kotlin.UShort | INT |
| enum class | VARCHAR |
Oracle - JDBC
データ型の対応関係を示します。
| Kotlin Type | Database Type |
|---|---|
| java.math.BigDecimal | NUMBER |
| java.math.BigInteger | NUMBER |
| java.sql.Array | N/A |
| java.sql.Blob | BLOB |
| java.sql.Clob | CLOB |
| java.sql.NClob | N/A |
| java.sql.SQLXML | N/A |
| java.time.LocalDate | DATE |
| java.time.LocalDateTime | DATE |
| java.time.LocalTime | TIME |
| java.time.OffsetDateTime | TIMESTAMP WITH TIME ZONE |
| java.util.UUID | N/A |
| kotlin.Any | N/A |
| kotlin.Boolean | NUMBER |
| kotlin.Byte | NUMBER |
| kotlin.ByteArray | RAW |
| kotlin.Double | FLOAT |
| kotlin.Float | FLOAT |
| kotlin.Int | NUMBER |
| kotlin.Long | NUMBER |
| kotlin.Short | NUMBER |
| kotlin.String | VARCHAR2 |
| kotlin.UByte | NUMBER |
| kotlin.UInt | NUMBER |
| kotlin.UShort | NUMBER |
| enum class | VARCHAR2 |
Oracle - R2DBC
データ型の対応関係を示します。
| Kotlin Type | Database Type |
|---|---|
| io.r2dbc.spi.Blob | BLOB |
| io.r2dbc.spi.Clob | CLOB |
| java.math.BigDecimal | NUMBER |
| java.math.BigInteger | NUMBER |
| java.time.Duration | INTERVAL DAY TO SECOND |
| java.time.LocalDate | DATE |
| java.time.LocalDateTime | DATE |
| java.time.LocalTime | TIME |
| java.time.Period | INTERVAL YEAR TO MONTH |
| java.time.OffsetDateTime | TIMESTAMP WITH TIME ZONE |
| java.util.UUID | N/A |
| kotlin.Any | N/A |
| kotlin.Boolean | NUMBER |
| kotlin.Byte | NUMBER |
| kotlin.ByteArray | RAW |
| kotlin.Double | FLOAT |
| kotlin.Float | FLOAT |
| kotlin.Int | NUMBER |
| kotlin.Long | NUMBER |
| kotlin.Short | NUMBER |
| kotlin.String | VARCHAR2 |
| kotlin.UByte | NUMBER |
| kotlin.UInt | NUMBER |
| kotlin.UShort | NUMBER |
| enum class | VARCHAR2 |
PostgreSQL - JDBC
データ型の対応関係を示します。
| Kotlin Type | Database Type |
|---|---|
| java.math.BigDecimal | numeric, decimal |
| java.math.BigInteger | numeric, decimal |
| java.sql.Array | array of data type |
| java.sql.Blob | N/A |
| java.sql.Clob | N/A |
| java.sql.NClob | N/A |
| java.sql.SQLXML | xml |
| java.time.LocalDate | date |
| java.time.LocalDateTime | timestamp |
| java.time.LocalTime | time |
| java.time.OffsetDateTime | timestamp with time zone |
| java.util.UUID | uuid |
| kotlin.Any | N/A |
| kotlin.Boolean | boolean, bool |
| kotlin.Byte | smallint |
| kotlin.ByteArray | bytea |
| kotlin.Double | double precision, float8 |
| kotlin.Float | real |
| kotlin.Int | integer, int, int4, serial |
| kotlin.Long | bigint, int8, bigserial, serial8 |
| kotlin.Short | smallint, int2, smallserial, serial2 |
| kotlin.String | character varying, varchar, text |
| kotlin.UByte | smallint, int2, smallserial, serial2 |
| kotlin.UInt | bigint, int8, bigserial, serial8 |
| kotlin.UShort | integer, int, int4, serial |
| enum class | character varying, varchar, text |
PostgreSQL - R2DBC
データ型の対応関係を示します。
| Kotlin Type | Database Type |
|---|---|
| io.r2dbc.postgresql.codec.Interval | interval |
| io.r2dbc.postgresql.codec.Json | json, jsonb |
| io.r2dbc.spi.Blob | bytea |
| io.r2dbc.spi.Clob | text |
| java.math.BigDecimal | numeric, decimal |
| java.math.BigInteger | numeric, decimal |
| java.time.LocalDate | date |
| java.time.LocalDateTime | timestamp |
| java.time.LocalTime | time |
| java.time.OffsetDateTime | timestamp with time zone |
| java.util.UUID | uuid |
| kotlin.Any | N/A |
| kotlin.Array | array of data type |
| kotlin.Boolean | boolean, bool |
| kotlin.Byte | smallint |
| kotlin.ByteArray | bytea |
| kotlin.Double | double precision, float8 |
| kotlin.Float | real |
| kotlin.Int | integer, int, int4, serial |
| kotlin.Long | bigint, int8, bigserial, serial8 |
| kotlin.Short | smallint, int2, smallserial, serial2 |
| kotlin.String | character varying, varchar, text |
| kotlin.UByte | smallint, int2, smallserial, serial2 |
| kotlin.UInt | bigint, int8, bigserial, serial8 |
| kotlin.UShort | integer, int, int4, serial |
| enum class | character varying, varchar, text |
SQL Server - JDBC
データ型の対応関係を示します。
| Kotlin Type | Database Type |
|---|---|
| java.math.BigDecimal | decimal |
| java.math.BigInteger | decimal |
| java.sql.Array | N/A |
| java.sql.Blob | varbinary(max) |
| java.sql.Clob | text |
| java.sql.NClob | N/A |
| java.sql.SQLXML | xml |
| java.time.LocalDate | date |
| java.time.LocalDateTime | datetime |
| java.time.LocalTime | time |
| java.time.OffsetDateTime | N/A |
| java.util.UUID | N/A |
| kotlin.Any | N/A |
| kotlin.Boolean | bit |
| kotlin.Byte | smallint, tinyint |
| kotlin.ByteArray | varbinary |
| kotlin.Double | float |
| kotlin.Float | real |
| kotlin.Int | int |
| kotlin.Long | bigint |
| kotlin.Short | smallint |
| kotlin.String | varchar, nvarchar |
| kotlin.UByte | smallint |
| kotlin.UInt | bigint |
| kotlin.UShort | int |
| enum class | varchar, nvarchar |
SQL Server - R2DBC
データ型の対応関係を示します。
| Kotlin Type | Database Type |
|---|---|
| io.r2dbc.spi.Blob | varbinary(max) |
| io.r2dbc.spi.Clob | text |
| java.math.BigDecimal | decimal |
| java.math.BigInteger | decimal |
| java.time.LocalDate | date |
| java.time.LocalDateTime | datetime |
| java.time.LocalTime | time |
| java.time.OffsetDateTime | N/A |
| java.util.UUID | N/A |
| kotlin.Any | N/A |
| kotlin.Boolean | bit |
| kotlin.Byte | smallint, tinyint |
| kotlin.ByteArray | varbinary |
| kotlin.Double | float |
| kotlin.Float | real |
| kotlin.Int | int |
| kotlin.Long | bigint |
| kotlin.Short | smallint |
| kotlin.String | varchar, nvarchar |
| kotlin.UByte | smallint |
| kotlin.UInt | bigint |
| kotlin.UShort | int |
| enum class | varchar, nvarchar |
最終更新 February 11, 2022: Update type mappings (1faf0f0)