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)