From 99a1fc8e5b26863a3780af1f00fd0bc04330067e Mon Sep 17 00:00:00 2001 From: Jason Fine Date: Tue, 21 Dec 2021 16:19:53 +0200 Subject: [PATCH] MySql: Handle time as strings --- .../jdbc/querybuilders/MysqlQueryDialect.java | 24 +++++++++++++++++++ .../querybuilders/QueryDialectProvider.java | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 src/main/java/com/upsolver/datasources/jdbc/querybuilders/MysqlQueryDialect.java diff --git a/src/main/java/com/upsolver/datasources/jdbc/querybuilders/MysqlQueryDialect.java b/src/main/java/com/upsolver/datasources/jdbc/querybuilders/MysqlQueryDialect.java new file mode 100644 index 0000000..ab3e2b4 --- /dev/null +++ b/src/main/java/com/upsolver/datasources/jdbc/querybuilders/MysqlQueryDialect.java @@ -0,0 +1,24 @@ +package com.upsolver.datasources.jdbc.querybuilders; + +import com.upsolver.datasources.jdbc.utils.ThrowingBiFunction; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; +import java.util.HashMap; +import java.util.Map; +import java.util.TimeZone; + +public class MysqlQueryDialect extends DefaultQueryDialect { + + protected static final Map> additionalGetter = new HashMap<>(); + + static { + additionalGetter.put(Types.TIME, getString); + } + + public MysqlQueryDialect(boolean keepType) { + super(keepType, additionalGetter); + } +} diff --git a/src/main/java/com/upsolver/datasources/jdbc/querybuilders/QueryDialectProvider.java b/src/main/java/com/upsolver/datasources/jdbc/querybuilders/QueryDialectProvider.java index ddf8990..04c6146 100644 --- a/src/main/java/com/upsolver/datasources/jdbc/querybuilders/QueryDialectProvider.java +++ b/src/main/java/com/upsolver/datasources/jdbc/querybuilders/QueryDialectProvider.java @@ -16,6 +16,8 @@ public static QueryDialect forConnection(String connectionString, boolean keepTy return new PostgreSqlQueryDialect(keepTypes); } else if (connStr.startsWith("jdbc:snowflake")) { return new SnowflakeQueryDialect(keepTypes); + } else if (connStr.startsWith("jdbc:mysql")) { + new MysqlQueryDialect(keepTypes); } return new DefaultQueryDialect(keepTypes, Collections.emptyMap()); }