Support for custom drivers

This commit is contained in:
jipengfei-jpf
2023-06-22 20:30:26 +08:00
parent e67d3dae54
commit a25fae6cfc
112 changed files with 4399 additions and 279 deletions

View File

@ -1,8 +1,7 @@
package ai.chat2db.server.test.common;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import ai.chat2db.server.domain.support.sql.DbhubContext;
import ai.chat2db.server.domain.support.sql.ConnectInfo;
import ai.chat2db.spi.sql.Chat2DBContext;
import ai.chat2db.spi.sql.ConnectInfo;
import ai.chat2db.server.start.Application;
import lombok.extern.slf4j.Slf4j;
@ -20,7 +19,7 @@ import org.springframework.boot.test.context.SpringBootTest;
@TestMethodOrder(value = MethodOrderer.OrderAnnotation.class)
public abstract class BaseTest {
public void putConnect(String url, String username, String password, DbTypeEnum dbType, String database,
public void putConnect(String url, String username, String password, String dbType, String database,
Long dataSourceId, Long consoleId) {
ConnectInfo connectInfo = new ConnectInfo();
connectInfo.setUser(username);
@ -31,10 +30,10 @@ public abstract class BaseTest {
connectInfo.setUrl(url);
connectInfo.setDatabase(database);
connectInfo.setConsoleOwn(false);
DbhubContext.putContext(connectInfo);
Chat2DBContext.putContext(connectInfo);
}
public void removeConnect() {
DbhubContext.removeContext();
Chat2DBContext.removeContext();
}
}

View File

@ -8,7 +8,6 @@ import ai.chat2db.server.domain.api.param.ConsoleConnectParam;
import ai.chat2db.server.domain.api.param.DataSourcePreConnectParam;
import ai.chat2db.server.domain.api.service.ConsoleService;
import ai.chat2db.server.domain.api.service.DataSourceService;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import ai.chat2db.server.domain.api.param.ConsoleCloseParam;
import ai.chat2db.server.test.common.BaseTest;
import ai.chat2db.server.test.domain.data.service.dialect.DialectProperties;
@ -37,13 +36,13 @@ public class ConsoleOperationsTest extends BaseTest {
@Order(1)
public void createAndClose() {
for (DialectProperties dialectProperties : dialectPropertiesList) {
DbTypeEnum dbTypeEnum = dialectProperties.getDbType();
String dbTypeEnum = dialectProperties.getDbType();
Long dataSourceId = TestUtils.nextLong();
Long consoleId = TestUtils.nextLong();
TestUtils.buildContext(dialectProperties, dataSourceId, consoleId);
DataSourcePreConnectParam dataSourceCreateParam = new DataSourcePreConnectParam();
dataSourceCreateParam.setType(dbTypeEnum.getCode());
dataSourceCreateParam.setType(dbTypeEnum);
dataSourceCreateParam.setUrl(dialectProperties.getUrl());
dataSourceCreateParam.setUser(dialectProperties.getUsername());
dataSourceCreateParam.setPassword(dialectProperties.getPassword());
@ -69,13 +68,13 @@ public class ConsoleOperationsTest extends BaseTest {
@Order(2)
public void createAfterDataSourceClose() {
for (DialectProperties dialectProperties : dialectPropertiesList) {
DbTypeEnum dbTypeEnum = dialectProperties.getDbType();
String dbTypeEnum = dialectProperties.getDbType();
Long dataSourceId = TestUtils.nextLong();
Long consoleId = TestUtils.nextLong();
TestUtils.buildContext(dialectProperties, dataSourceId, consoleId);
DataSourcePreConnectParam dataSourceCreateParam = new DataSourcePreConnectParam();
dataSourceCreateParam.setType(dbTypeEnum.getCode());
dataSourceCreateParam.setType(dbTypeEnum);
dataSourceCreateParam.setUrl(dialectProperties.getUrl());
dataSourceCreateParam.setUser(dialectProperties.getUsername());
dataSourceCreateParam.setPassword(dialectProperties.getPassword());
@ -91,13 +90,13 @@ public class ConsoleOperationsTest extends BaseTest {
@Order(3)
public void closeDataSourceAfterCreateConsole() {
for (DialectProperties dialectProperties : dialectPropertiesList) {
DbTypeEnum dbTypeEnum = dialectProperties.getDbType();
String dbTypeEnum = dialectProperties.getDbType();
Long dataSourceId = TestUtils.nextLong();
Long consoleId = TestUtils.nextLong();
TestUtils.buildContext(dialectProperties, dataSourceId, consoleId);
DataSourcePreConnectParam dataSourceCreateParam = new DataSourcePreConnectParam();
dataSourceCreateParam.setType(dbTypeEnum.getCode());
dataSourceCreateParam.setType(dbTypeEnum);
dataSourceCreateParam.setUrl(dialectProperties.getUrl());
dataSourceCreateParam.setUser(dialectProperties.getUsername());
dataSourceCreateParam.setPassword(dialectProperties.getPassword());

View File

@ -2,13 +2,12 @@ package ai.chat2db.server.test.domain.data.service;
import java.util.List;
import ai.chat2db.spi.model.Database;
import jakarta.annotation.Resource;
import ai.chat2db.server.domain.api.param.DataSourcePreConnectParam;
import ai.chat2db.server.domain.api.service.DataSourceService;
import ai.chat2db.server.domain.api.service.DatabaseService;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import ai.chat2db.server.domain.support.model.Database;
import ai.chat2db.server.domain.api.param.DatabaseQueryAllParam;
import ai.chat2db.server.test.common.BaseTest;
import ai.chat2db.server.test.domain.data.service.dialect.DialectProperties;
@ -40,7 +39,7 @@ public class DatabaseOperationsTest extends BaseTest {
@Order(1)
public void queryAll() {
for (DialectProperties dialectProperties : dialectPropertiesList) {
DbTypeEnum dbTypeEnum = dialectProperties.getDbType();
String dbTypeEnum = dialectProperties.getDbType();
Long dataSourceId = TestUtils.nextLong();
// 准备上下文
@ -49,7 +48,7 @@ public class DatabaseOperationsTest extends BaseTest {
DataSourcePreConnectParam dataSourceCreateParam = new DataSourcePreConnectParam();
dataSourceCreateParam.setType(dbTypeEnum.getCode());
dataSourceCreateParam.setType(dbTypeEnum);
dataSourceCreateParam.setUrl(dialectProperties.getUrl());
dataSourceCreateParam.setUser(dialectProperties.getUsername());
dataSourceCreateParam.setPassword(dialectProperties.getPassword());

View File

@ -32,10 +32,10 @@ public class ExampleOperationsTest extends BaseTest {
@Order(1)
public void example() {
for (DialectProperties dialectProperties : dialectPropertiesList) {
DataResult<String> createTable = tableService.createTableExample(dialectProperties.getDbType().getCode());
DataResult<String> createTable = tableService.createTableExample(dialectProperties.getDbType());
log.info("返回建表语句:{}", createTable);
Assertions.assertNotNull(createTable, "查询样例失败");
DataResult<String> alterTable = tableService.alterTableExample(dialectProperties.getDbType().getCode());
DataResult<String> alterTable = tableService.alterTableExample(dialectProperties.getDbType());
log.info("返回建修改表语句:{}", alterTable);
Assertions.assertNotNull(alterTable, "查询样例失败");
}

View File

@ -3,6 +3,8 @@ package ai.chat2db.server.test.domain.data.service;
import java.util.Date;
import java.util.List;
import ai.chat2db.spi.model.ExecuteResult;
import ai.chat2db.spi.model.Header;
import jakarta.annotation.Resource;
import ai.chat2db.server.domain.api.param.ConsoleConnectParam;
@ -11,9 +13,6 @@ import ai.chat2db.server.domain.api.param.DlExecuteParam;
import ai.chat2db.server.domain.api.service.ConsoleService;
import ai.chat2db.server.domain.api.service.DataSourceService;
import ai.chat2db.server.domain.api.service.DlTemplateService;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import ai.chat2db.server.domain.support.model.ExecuteResult;
import ai.chat2db.server.domain.support.model.Header;
import ai.chat2db.server.test.common.BaseTest;
import ai.chat2db.server.test.domain.data.service.dialect.DialectProperties;
import ai.chat2db.server.test.domain.data.utils.TestUtils;
@ -58,7 +57,7 @@ public class JdbcOperationsTest extends BaseTest {
@Order(1)
public void execute() {
for (DialectProperties dialectProperties : dialectPropertiesList) {
DbTypeEnum dbTypeEnum = dialectProperties.getDbType();
String dbTypeEnum = dialectProperties.getDbType();
Long dataSourceId = TestUtils.nextLong();
Long consoleId = TestUtils.nextLong();
@ -67,7 +66,7 @@ public class JdbcOperationsTest extends BaseTest {
dialectProperties.getDbType(), dialectProperties.getDatabaseName(), dataSourceId, consoleId);
DataSourcePreConnectParam dataSourceCreateParam = new DataSourcePreConnectParam();
dataSourceCreateParam.setType(dbTypeEnum.getCode());
dataSourceCreateParam.setType(dbTypeEnum);
dataSourceCreateParam.setUrl(dialectProperties.getUrl());
dataSourceCreateParam.setUser(dialectProperties.getUsername());
dataSourceCreateParam.setPassword(dialectProperties.getPassword());
@ -136,12 +135,12 @@ public class JdbcOperationsTest extends BaseTest {
public void dropTable() {
for (DialectProperties dialectProperties : dialectPropertiesList) {
try {
DbTypeEnum dbTypeEnum = dialectProperties.getDbType();
String dbTypeEnum = dialectProperties.getDbType();
Long dataSourceId = TestUtils.nextLong();
Long consoleId = TestUtils.nextLong();
DataSourcePreConnectParam dataSourceCreateParam = new DataSourcePreConnectParam();
dataSourceCreateParam.setType(dbTypeEnum.getCode());
dataSourceCreateParam.setType(dbTypeEnum);
dataSourceCreateParam.setUrl(dialectProperties.getUrl());
dataSourceCreateParam.setUser(dialectProperties.getUsername());
dataSourceCreateParam.setPassword(dialectProperties.getPassword());

View File

@ -1,26 +1,23 @@
package ai.chat2db.server.test.domain.data.service;
import java.util.List;
import jakarta.annotation.Resource;
import ai.chat2db.server.domain.api.param.DataSourceCreateParam;
import ai.chat2db.server.domain.api.param.DataSourcePreConnectParam;
import ai.chat2db.server.domain.api.service.DataSourceService;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import ai.chat2db.server.test.common.BaseTest;
import ai.chat2db.server.test.domain.data.service.dialect.DialectProperties;
import ai.chat2db.server.test.domain.data.utils.TestUtils;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import com.alibaba.fastjson2.JSON;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
* 数据源测试
*
@ -37,13 +34,13 @@ public class SQLExecutorOperationsTest extends BaseTest {
@Order(1)
public void createAndClose() {
for (DialectProperties dialectProperties : dialectPropertiesList) {
DbTypeEnum dbTypeEnum = dialectProperties.getDbType();
String dbTypeEnum = dialectProperties.getDbType();
Long dataSourceId = TestUtils.nextLong();
TestUtils.buildContext(dialectProperties, dataSourceId, null);
// 创建
DataSourcePreConnectParam dataSourceCreateParam = new DataSourcePreConnectParam();
dataSourceCreateParam.setType(dbTypeEnum.getCode());
dataSourceCreateParam.setType(dbTypeEnum);
dataSourceCreateParam.setUrl(dialectProperties.getUrl());
dataSourceCreateParam.setUser(dialectProperties.getUsername());
dataSourceCreateParam.setPassword(dialectProperties.getPassword());
@ -61,12 +58,12 @@ public class SQLExecutorOperationsTest extends BaseTest {
@Order(2)
public void test() {
for (DialectProperties dialectProperties : dialectPropertiesList) {
DbTypeEnum dbTypeEnum = dialectProperties.getDbType();
String dbTypeEnum = dialectProperties.getDbType();
// 创建
DataSourcePreConnectParam dataSourceCreateParam = new DataSourcePreConnectParam();
dataSourceCreateParam.setType(dbTypeEnum.getCode());
dataSourceCreateParam.setType(dbTypeEnum);
dataSourceCreateParam.setUrl(dialectProperties.getErrorUrl());
dataSourceCreateParam.setUser(dialectProperties.getUsername());
dataSourceCreateParam.setPassword(dialectProperties.getPassword());
@ -79,16 +76,16 @@ public class SQLExecutorOperationsTest extends BaseTest {
@Order(3)
public void createDataSource(){
for (DialectProperties dialectProperties : dialectPropertiesList) {
if(!dialectProperties.getDbType().equals(DbTypeEnum.CLICKHOUSE)){
if(!dialectProperties.getDbType().equals("CLICKHOUSE")){
continue;
}
DbTypeEnum dbTypeEnum = dialectProperties.getDbType();
String dbTypeEnum = dialectProperties.getDbType();
Long dataSourceId = TestUtils.nextLong();
TestUtils.buildContext(dialectProperties, dataSourceId, null);
// 创建
DataSourceCreateParam dataSourceCreateParam = new DataSourceCreateParam();
dataSourceCreateParam.setAlias(dialectProperties.getDbType()+"_unittest_"+dialectProperties.getDbType());
dataSourceCreateParam.setType(dbTypeEnum.getCode());
dataSourceCreateParam.setType(dbTypeEnum);
dataSourceCreateParam.setUrl(dialectProperties.getUrl());
dataSourceCreateParam.setUserName(dialectProperties.getUsername());
dataSourceCreateParam.setPassword(dialectProperties.getPassword());

View File

@ -13,14 +13,8 @@ import ai.chat2db.server.domain.api.service.ConsoleService;
import ai.chat2db.server.domain.api.service.DataSourceService;
import ai.chat2db.server.domain.api.service.DlTemplateService;
import ai.chat2db.server.domain.api.service.TableService;
import ai.chat2db.server.domain.support.enums.CollationEnum;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import ai.chat2db.server.domain.support.enums.IndexTypeEnum;
import ai.chat2db.server.domain.support.model.Sql;
import ai.chat2db.server.domain.support.model.Table;
import ai.chat2db.server.domain.support.model.TableColumn;
import ai.chat2db.server.domain.support.model.TableIndex;
import ai.chat2db.server.domain.support.model.TableIndexColumn;
import ai.chat2db.spi.enums.*;
import ai.chat2db.spi.model.*;
import ai.chat2db.server.domain.api.param.DropParam;
import ai.chat2db.server.domain.api.param.ShowCreateTableParam;
import ai.chat2db.server.domain.api.param.TablePageQueryParam;
@ -70,7 +64,7 @@ public class TableOperationsTest extends BaseTest {
@Order(1)
public void table() {
for (DialectProperties dialectProperties : dialectPropertiesList) {
DbTypeEnum dbTypeEnum = dialectProperties.getDbType();
String dbTypeEnum = dialectProperties.getDbType();
Long dataSourceId = TestUtils.nextLong();
Long consoleId = TestUtils.nextLong();
@ -80,7 +74,7 @@ public class TableOperationsTest extends BaseTest {
DataSourcePreConnectParam dataSourceCreateParam = new DataSourcePreConnectParam();
dataSourceCreateParam.setType(dbTypeEnum.getCode());
dataSourceCreateParam.setType(dbTypeEnum);
dataSourceCreateParam.setUrl(dialectProperties.getUrl());
dataSourceCreateParam.setUser(dialectProperties.getUsername());
dataSourceCreateParam.setPassword(dialectProperties.getPassword());
@ -106,13 +100,13 @@ public class TableOperationsTest extends BaseTest {
.databaseName(dialectProperties.getDatabaseName())
.tableName(dialectProperties.toCase(TABLE_NAME))
.build();
if (dialectProperties.getDbType() == DbTypeEnum.POSTGRESQL) {
if (dialectProperties.getDbType() == "POSTGRESQL") {
showCreateTableParam.setSchemaName("public");
}
DataResult<String> createTable = tableService.showCreateTable(showCreateTableParam);
log.info("建表语句:{}", createTable.getData());
if (dialectProperties.getDbType() != DbTypeEnum.H2) {
if (dialectProperties.getDbType() != "H2") {
Assertions.assertTrue(createTable.getData().contains(dialectProperties.toCase(TABLE_NAME)),
"查询表结构失败");
}
@ -122,7 +116,7 @@ public class TableOperationsTest extends BaseTest {
tablePageQueryParam.setDataSourceId(dataSourceId);
tablePageQueryParam.setDatabaseName(dialectProperties.getDatabaseName());
tablePageQueryParam.setTableName(dialectProperties.toCase(TABLE_NAME));
if (dialectProperties.getDbType() == DbTypeEnum.POSTGRESQL) {
if (dialectProperties.getDbType() == "POSTGRESQL") {
tablePageQueryParam.setSchemaName("public");
}
List<Table> tableList = tableService.pageQuery(tablePageQueryParam, TableSelector.builder()
@ -133,14 +127,14 @@ public class TableOperationsTest extends BaseTest {
Assertions.assertNotEquals(0L, tableList.size(), "查询表结构失败");
Table table = tableList.get(0);
// Assertions.assertEquals(dialectProperties.toCase(TABLE_NAME), table.getName(), "查询表结构失败");
if (dialectProperties.getDbType() != DbTypeEnum.POSTGRESQL) {
if (dialectProperties.getDbType() != "POSTGRESQL") {
Assertions.assertEquals("测试表", table.getComment(), "查询表结构失败");
}
TableQueryParam tableQueryParam = new TableQueryParam();
tableQueryParam.setTableName(table.getName());
tableQueryParam.setDataSourceId(dataSourceId);
tableQueryParam.setDatabaseName(dialectProperties.getDatabaseName());
if (dialectProperties.getDbType() == DbTypeEnum.POSTGRESQL) {
if (dialectProperties.getDbType() == "POSTGRESQL") {
tableQueryParam.setSchemaName("public");
}
List<TableColumn> columnList = tableService.queryColumns(tableQueryParam);
@ -156,7 +150,7 @@ public class TableOperationsTest extends BaseTest {
Assertions.assertTrue(string.getNullable(), "查询表结构失败");
Assertions.assertEquals("DATA", TestUtils.unWrapperDefaultValue(string.getDefaultValue()),
"查询表结构失败");
if (dialectProperties.getDbType() == DbTypeEnum.POSTGRESQL) {
if (dialectProperties.getDbType() == "POSTGRESQL") {
tablePageQueryParam.setSchemaName("public");
}
List<TableIndex> tableIndexList = tableService.queryIndexes(tableQueryParam);
@ -208,7 +202,7 @@ public class TableOperationsTest extends BaseTest {
}
private void testBuildSql(DialectProperties dialectProperties, Long dataSourceId, Long consoleId) {
if (dialectProperties.getDbType() != DbTypeEnum.MYSQL) {
if (dialectProperties.getDbType() != "MYSQL") {
log.error("目前测试案例只支持mysql");
return;
}
@ -469,12 +463,12 @@ public class TableOperationsTest extends BaseTest {
public void dropTable() {
for (DialectProperties dialectProperties : dialectPropertiesList) {
try {
DbTypeEnum dbTypeEnum = dialectProperties.getDbType();
String dbTypeEnum = dialectProperties.getDbType();
Long dataSourceId = TestUtils.nextLong();
Long consoleId = TestUtils.nextLong();
DataSourcePreConnectParam dataSourceCreateParam = new DataSourcePreConnectParam();
dataSourceCreateParam.setType(dbTypeEnum.getCode());
dataSourceCreateParam.setType(dbTypeEnum);
dataSourceCreateParam.setUrl(dialectProperties.getUrl());
dataSourceCreateParam.setUser(dialectProperties.getUsername());
dataSourceCreateParam.setPassword(dialectProperties.getPassword());

View File

@ -2,7 +2,6 @@ package ai.chat2db.server.test.domain.data.service.dialect;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
@ -11,8 +10,8 @@ import java.util.Date;
public class ClickHouseDialectProperties implements DialectProperties {
@Override
public DbTypeEnum getDbType() {
return DbTypeEnum.CLICKHOUSE;
public String getDbType() {
return "CLICKHOUSE";
}
@Override

View File

@ -2,7 +2,6 @@ package ai.chat2db.server.test.domain.data.service.dialect;
import java.util.Date;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
/**
@ -17,7 +16,7 @@ public interface DialectProperties {
*
* @return
*/
DbTypeEnum getDbType();
String getDbType();
/**
* 连接

View File

@ -2,7 +2,6 @@ package ai.chat2db.server.test.domain.data.service.dialect;
import java.util.Date;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
@ -18,8 +17,8 @@ import org.springframework.stereotype.Component;
public class H2DialectProperties implements DialectProperties {
@Override
public DbTypeEnum getDbType() {
return DbTypeEnum.H2;
public String getDbType() {
return "H2";
}
@Override

View File

@ -2,7 +2,6 @@ package ai.chat2db.server.test.domain.data.service.dialect;
import java.util.Date;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
@ -18,8 +17,8 @@ import org.springframework.stereotype.Component;
public class MysqlDialectProperties implements DialectProperties {
@Override
public DbTypeEnum getDbType() {
return DbTypeEnum.MYSQL;
public String getDbType() {
return "MYSQL";
}
@Override

View File

@ -2,7 +2,6 @@ package ai.chat2db.server.test.domain.data.service.dialect;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
@ -11,8 +10,8 @@ import java.util.Date;
public class OracleDialectProperties implements DialectProperties {
@Override
public DbTypeEnum getDbType() {
return DbTypeEnum.ORACLE;
public String getDbType() {
return "ORACLE";
}
@Override

View File

@ -6,7 +6,6 @@ package ai.chat2db.server.test.domain.data.service.dialect;
import java.util.Date;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
@ -21,8 +20,8 @@ import org.springframework.stereotype.Component;
public class PostgresqlDialectProperties implements DialectProperties {
@Override
public DbTypeEnum getDbType() {
return DbTypeEnum.POSTGRESQL;
public String getDbType() {
return "POSTGRESQL";
}
@Override

View File

@ -4,15 +4,13 @@
*/
package ai.chat2db.server.test.domain.data.service.dialect;
import java.util.Date;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* @author jipengfei
* @version : SQLITEDialectProperties.java
@ -20,8 +18,8 @@ import org.springframework.stereotype.Component;
@Component
public class SQLITEDialectProperties implements DialectProperties{
@Override
public DbTypeEnum getDbType() {
return DbTypeEnum.SQLITE;
public String getDbType() {
return "SQLITE";
}
@Override

View File

@ -4,15 +4,13 @@
*/
package ai.chat2db.server.test.domain.data.service.dialect;
import java.util.Date;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* @author jipengfei
* @version : SQLServerDialectProperties.java
@ -20,8 +18,8 @@ import org.springframework.stereotype.Component;
@Component
public class SQLServerDialectProperties implements DialectProperties{
@Override
public DbTypeEnum getDbType() {
return DbTypeEnum.SQLSERVER;
public String getDbType() {
return "SQLSERVER";
}
@Override

View File

@ -2,10 +2,9 @@ package ai.chat2db.server.test.domain.data.utils;
import java.util.concurrent.atomic.AtomicLong;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import ai.chat2db.server.domain.support.sql.DbhubContext;
import ai.chat2db.server.domain.support.sql.ConnectInfo;
import ai.chat2db.server.test.domain.data.service.dialect.DialectProperties;
import ai.chat2db.spi.sql.Chat2DBContext;
import ai.chat2db.spi.sql.ConnectInfo;
/**
* 测试工具类
@ -58,10 +57,10 @@ public class TestUtils {
connectInfo.setUrl(dialectProperties.getUrl());
connectInfo.setDatabase(dialectProperties.getDatabaseName());
connectInfo.setConsoleOwn(false);
DbhubContext.putContext(connectInfo);
Chat2DBContext.putContext(connectInfo);
}
public static void remove(){
DbhubContext.removeContext();
Chat2DBContext.removeContext();
}
}

View File

@ -3,6 +3,8 @@ package ai.chat2db.server.test.temp;
import java.util.ArrayList;
import java.util.List;
import ai.chat2db.spi.model.ExecuteResult;
import ai.chat2db.spi.model.Sql;
import jakarta.annotation.Resource;
import ai.chat2db.server.domain.api.param.ConsoleConnectParam;
@ -12,9 +14,6 @@ import ai.chat2db.server.domain.api.service.ConsoleService;
import ai.chat2db.server.domain.api.service.DataSourceService;
import ai.chat2db.server.domain.api.service.DlTemplateService;
import ai.chat2db.server.domain.api.service.TableService;
import ai.chat2db.server.domain.support.enums.DbTypeEnum;
import ai.chat2db.server.domain.support.model.ExecuteResult;
import ai.chat2db.server.domain.support.model.Sql;
import ai.chat2db.server.domain.api.param.SqlAnalyseParam;
import ai.chat2db.server.test.common.BaseTest;
import ai.chat2db.server.test.domain.data.service.dialect.MysqlDialectProperties;
@ -45,13 +44,13 @@ public class SqlTeset extends BaseTest {
// 创建
DataSourcePreConnectParam dataSourceCreateParam = new DataSourcePreConnectParam();
dataSourceCreateParam.setType(DbTypeEnum.MYSQL.getCode());
dataSourceCreateParam.setType("MYSQL");
dataSourceCreateParam.setUrl(mysqlDialectProperties.getUrl());
dataSourceCreateParam.setUser(mysqlDialectProperties.getUsername());
dataSourceCreateParam.setPassword(mysqlDialectProperties.getPassword());
ActionResult actionResult = dataSourceService.preConnect(dataSourceCreateParam);
DataResult<String> createTable = tableService.createTableExample(DbTypeEnum.MYSQL.getCode());
DataResult<String> createTable = tableService.createTableExample("MYSQL");
log.info("sql1{}", createTable.getData());
SqlAnalyseParam sqlAnalyseParam = new SqlAnalyseParam();
sqlAnalyseParam.setDataSourceId(1L);