完善系统提供多数据库部署支持功能

This commit is contained in:
datagear 2021-02-19 19:23:02 +08:00
parent cfa2b6e14d
commit f5413ffe9d
4 changed files with 47 additions and 19 deletions

View File

@ -37,12 +37,12 @@ public class DefaultMbSqlDialect extends MbSqlDialect
@Override
public String pagingSqlHead(int index, int fetchSize)
{
throw new UnsupportedOperationException();
return null;
}
@Override
public String pagingSqlFoot(int index, int fetchSize)
{
throw new UnsupportedOperationException();
return null;
}
}

View File

@ -83,7 +83,7 @@ public abstract class MbSqlDialect
* 页起始索引{@code 0}开头
* @param fetchSize
* 页大小
* @return
* @return 返回{@code null}表示不支持分页
*/
public abstract String pagingSqlHead(int index, int fetchSize);
@ -94,7 +94,14 @@ public abstract class MbSqlDialect
* 页起始索引{@code 0}开头
* @param fetchSize
* 页大小
* @return
* @return 返回{@code null}表示不支持分页
*/
public abstract String pagingSqlFoot(int index, int fetchSize);
@Override
public String toString()
{
return getClass().getSimpleName() + " [supportsPaging=" + supportsPaging() + ", pagingSqlHead="
+ pagingSqlHead(0, 10) + ", pagingSqlFoot=" + pagingSqlFoot(0, 10) + "]";
}
}

View File

@ -90,22 +90,37 @@ public class MbSqlDialectBuilder
*/
protected MbSqlDialect build(Connection cn, String url) throws SQLException
{
MbSqlDialect dialect = null;
if (StringUtil.isEmpty(url))
return buildDefaultMbSqlDialect(cn);
{
dialect = buildDefaultMbSqlDialect(cn);
}
else if (DerbyURLSensor.INSTANCE.supports(url))
{
dialect = buildDerbyMbSqlDialect(cn);
}
else if (MySqlURLSensor.INSTANCE.supports(url))
{
dialect = buildMysqlMbSqlDialect(cn);
}
else if (OracleURLSensor.INSTANCE.supports(url))
{
dialect = buildOracleMbSqlDialect(cn);
}
else if (PostgresqlURLSensor.INSTANCE.supports(url))
{
dialect = buildPostgresqlMbSqlDialect(cn);
}
else
{
dialect = buildDefaultMbSqlDialect(cn);
}
if (DerbyURLSensor.INSTANCE.supports(url))
return buildDerbyMbSqlDialect(cn);
if (LOGGER.isInfoEnabled())
LOGGER.info("Build " + dialect.toString() + " for current environment");
if (MySqlURLSensor.INSTANCE.supports(url))
return buildMysqlMbSqlDialect(cn);
if (OracleURLSensor.INSTANCE.supports(url))
return buildOracleMbSqlDialect(cn);
if (PostgresqlURLSensor.INSTANCE.supports(url))
return buildPostgresqlMbSqlDialect(cn);
return buildDefaultMbSqlDialect(cn);
return dialect;
}
protected DerbyMbSqlDialect buildDerbyMbSqlDialect(Connection cn) throws SQLException

View File

@ -108,7 +108,10 @@ CREATE TABLE DATAGEAR_AUTHORIZATION
);
--REPLACE函数
CREATE FUNCTION DATAGEAR_REPLACE(orgStr VARCHAR(500), oldStr VARCHAR(100), newStr VARCHAR(100)) RETURNS VARCHAR(500)
--srcStr
--oldStr
--newStr
CREATE FUNCTION DATAGEAR_REPLACE(srcStr VARCHAR(500), oldStr VARCHAR(100), newStr VARCHAR(100)) RETURNS VARCHAR(500)
PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME 'org.datagear.management.util.DerbyFunctionSupport.replace';
CREATE TABLE DATAGEAR_SQL_HISTORY
@ -237,7 +240,10 @@ ALTER TABLE DATAGEAR_HTML_DASHBOARD ALTER COLUMN HD_TEMPLATE SET DATA TYPE VARCH
-----------------------------------------
--REPLACE函数
CREATE FUNCTION DATAGEAR_REPLACEREGEX(orgStr VARCHAR(500), oldStr VARCHAR(100), newStr VARCHAR(100)) RETURNS VARCHAR(500)
--srcStr
--oldStr
--newStr
CREATE FUNCTION DATAGEAR_REPLACEREGEX(srcStr VARCHAR(500), oldStr VARCHAR(100), newStr VARCHAR(100)) RETURNS VARCHAR(500)
PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME 'org.datagear.management.util.DerbyFunctionSupport.replaceRegex';
--线