mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
Allow full JDBC URL to be set in RDBMS meta-data, used directly (w/ a known vendor)
This commit is contained in:
@ -25,6 +25,7 @@ package com.kingsrook.qqq.backend.module.rdbms.jdbc;
|
|||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import com.kingsrook.qqq.backend.core.utils.StringUtils;
|
||||||
import com.kingsrook.qqq.backend.module.rdbms.model.metadata.RDBMSBackendMetaData;
|
import com.kingsrook.qqq.backend.module.rdbms.model.metadata.RDBMSBackendMetaData;
|
||||||
|
|
||||||
|
|
||||||
@ -41,28 +42,20 @@ public class ConnectionManager
|
|||||||
{
|
{
|
||||||
String jdbcURL;
|
String jdbcURL;
|
||||||
|
|
||||||
switch (backend.getVendor())
|
if(StringUtils.hasContent(backend.getJdbcUrl()))
|
||||||
{
|
{
|
||||||
case "aurora":
|
jdbcURL = backend.getJdbcUrl();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch(backend.getVendor())
|
||||||
{
|
{
|
||||||
// TODO aws-mysql-jdbc driver not working when running on AWS
|
// TODO aws-mysql-jdbc driver not working when running on AWS
|
||||||
// jdbcURL = "jdbc:mysql:aws://" + backend.getHostName() + ":" + backend.getPort() + "/" + backend.getDatabaseName() + "?rewriteBatchedStatements=true&zeroDateTimeBehavior=CONVERT_TO_NULL";
|
// jdbcURL = "jdbc:mysql:aws://" + backend.getHostName() + ":" + backend.getPort() + "/" + backend.getDatabaseName() + "?rewriteBatchedStatements=true&zeroDateTimeBehavior=CONVERT_TO_NULL";
|
||||||
jdbcURL = "jdbc:mysql://" + backend.getHostName() + ":" + backend.getPort() + "/" + backend.getDatabaseName() + "?rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull&useSSL=false";
|
case "aurora" -> jdbcURL = "jdbc:mysql://" + backend.getHostName() + ":" + backend.getPort() + "/" + backend.getDatabaseName() + "?rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull&useSSL=false";
|
||||||
break;
|
case "mysql" -> jdbcURL = "jdbc:mysql://" + backend.getHostName() + ":" + backend.getPort() + "/" + backend.getDatabaseName() + "?rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull";
|
||||||
}
|
case "h2" -> jdbcURL = "jdbc:h2:" + backend.getHostName() + ":" + backend.getDatabaseName() + ";MODE=MySQL;DB_CLOSE_DELAY=-1";
|
||||||
case "mysql":
|
default -> throw new IllegalArgumentException("Unsupported rdbms backend vendor: " + backend.getVendor());
|
||||||
{
|
|
||||||
jdbcURL = "jdbc:mysql://" + backend.getHostName() + ":" + backend.getPort() + "/" + backend.getDatabaseName() + "?rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case "h2":
|
|
||||||
{
|
|
||||||
jdbcURL = "jdbc:h2:" + backend.getHostName() + ":" + backend.getDatabaseName() + ";MODE=MySQL;DB_CLOSE_DELAY=-1";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
throw new IllegalArgumentException("Unsupported rdbms backend vendor: " + backend.getVendor());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,6 +39,8 @@ public class RDBMSBackendMetaData extends QBackendMetaData
|
|||||||
private String username;
|
private String username;
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
|
private String jdbcUrl;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
@ -281,4 +283,35 @@ public class RDBMSBackendMetaData extends QBackendMetaData
|
|||||||
password = interpreter.interpret(password);
|
password = interpreter.interpret(password);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Getter for jdbcUrl
|
||||||
|
*******************************************************************************/
|
||||||
|
public String getJdbcUrl()
|
||||||
|
{
|
||||||
|
return (this.jdbcUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Setter for jdbcUrl
|
||||||
|
*******************************************************************************/
|
||||||
|
public void setJdbcUrl(String jdbcUrl)
|
||||||
|
{
|
||||||
|
this.jdbcUrl = jdbcUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Fluent setter for jdbcUrl
|
||||||
|
*******************************************************************************/
|
||||||
|
public RDBMSBackendMetaData withJdbcUrl(String jdbcUrl)
|
||||||
|
{
|
||||||
|
this.jdbcUrl = jdbcUrl;
|
||||||
|
return (this);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user