mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-08-02 21:50:43 +08:00
add
This commit is contained in:
@ -18,7 +18,7 @@ import org.springframework.stereotype.Service;
|
||||
public class ConsoleServiceImpl implements ConsoleService {
|
||||
@Override
|
||||
public ActionResult createConsole(ConsoleConnectParam param) {
|
||||
Chat2DBContext.getDBManage().connectDatabase(param.getDatabaseName());
|
||||
Chat2DBContext.getDBManage().connectDatabase(Chat2DBContext.getConnection(),param.getDatabaseName());
|
||||
return ActionResult.isSuccess();
|
||||
}
|
||||
|
||||
|
@ -16,16 +16,14 @@ import ai.chat2db.server.domain.api.service.DataSourceService;
|
||||
import ai.chat2db.server.domain.core.converter.DataSourceConverter;
|
||||
import ai.chat2db.server.domain.repository.entity.DataSourceDO;
|
||||
import ai.chat2db.server.domain.repository.mapper.DataSourceMapper;
|
||||
import ai.chat2db.spi.config.DriverConfig;
|
||||
import ai.chat2db.spi.model.DataSourceConnect;
|
||||
import ai.chat2db.spi.model.Database;
|
||||
import ai.chat2db.spi.model.KeyValue;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
||||
import ai.chat2db.server.tools.common.util.EasyCollectionUtils;
|
||||
|
||||
import ai.chat2db.spi.config.DriverConfig;
|
||||
import ai.chat2db.spi.model.DataSourceConnect;
|
||||
import ai.chat2db.spi.model.Database;
|
||||
import ai.chat2db.spi.model.KeyValue;
|
||||
import ai.chat2db.spi.sql.Chat2DBContext;
|
||||
import ai.chat2db.spi.sql.SQLExecutor;
|
||||
import ai.chat2db.spi.util.JdbcUtils;
|
||||
@ -137,7 +135,7 @@ public class DataSourceServiceImpl implements DataSourceService {
|
||||
public ListResult<Database> connect(Long id) {
|
||||
DatabaseQueryAllParam queryAllParam = new DatabaseQueryAllParam();
|
||||
queryAllParam.setDataSourceId(id);
|
||||
List<Database> databases = Chat2DBContext.getMetaData().databases();
|
||||
List<Database> databases = Chat2DBContext.getMetaData().databases(Chat2DBContext.getConnection());
|
||||
return ListResult.of(databases);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package ai.chat2db.server.domain.core.impl;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
|
||||
@ -18,7 +19,6 @@ import ai.chat2db.spi.model.Database;
|
||||
import ai.chat2db.spi.model.MetaSchema;
|
||||
import ai.chat2db.spi.model.Schema;
|
||||
import ai.chat2db.spi.sql.Chat2DBContext;
|
||||
import ai.chat2db.spi.sql.ConnectInfo;
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -37,41 +37,44 @@ public class DatabaseServiceImpl implements DatabaseService {
|
||||
|
||||
@Override
|
||||
public ListResult<Database> queryAll(DatabaseQueryAllParam param) {
|
||||
return ListResult.of(Chat2DBContext.getMetaData().databases());
|
||||
return ListResult.of(Chat2DBContext.getMetaData().databases(Chat2DBContext.getConnection()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ListResult<Schema> querySchema(SchemaQueryParam param) {
|
||||
return ListResult.of(Chat2DBContext.getMetaData().schemas(param.getDataBaseName()));
|
||||
return ListResult.of(
|
||||
Chat2DBContext.getMetaData().schemas(Chat2DBContext.getConnection(), param.getDataBaseName()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataResult<MetaSchema> queryDatabaseSchema(MetaDataQueryParam param) {
|
||||
MetaSchema metaSchema = new MetaSchema();
|
||||
MetaData metaData = Chat2DBContext.getMetaData();
|
||||
ConnectInfo connectInfo = Chat2DBContext.getConnectInfo();
|
||||
Connection connection = Chat2DBContext.getConnection();
|
||||
MetaSchema ms = CacheManage.get(getDataSourceKey(param.getDataSourceId()), MetaSchema.class,
|
||||
(key) -> param.isRefresh(), (key) -> {
|
||||
List<Database> databases = metaData.databases();
|
||||
List<Database> databases = metaData.databases(Chat2DBContext.getConnection());
|
||||
if (!CollectionUtils.isEmpty(databases)) {
|
||||
// CountDownLatch countDownLatch = ThreadUtil.newCountDownLatch(databases.size());
|
||||
CountDownLatch countDownLatch = ThreadUtil.newCountDownLatch(databases.size());
|
||||
for (Database database : databases) {
|
||||
//ThreadUtil.execute(() -> {
|
||||
try {
|
||||
// Chat2DBContext.putContext(connectInfo);
|
||||
database.setSchemas(metaData.schemas(database.getName()));
|
||||
// countDownLatch.countDown();
|
||||
} catch (Exception e) {
|
||||
log.error("queryDatabaseSchema error", e);
|
||||
} finally {
|
||||
//Chat2DBContext.removeContext();
|
||||
}
|
||||
// });
|
||||
ThreadUtil.execute(() -> {
|
||||
try {
|
||||
database.setSchemas(metaData.schemas(connection, database.getName()));
|
||||
countDownLatch.countDown();
|
||||
} catch (Exception e) {
|
||||
log.error("queryDatabaseSchema error", e);
|
||||
}
|
||||
});
|
||||
}
|
||||
try {
|
||||
countDownLatch.await();
|
||||
} catch (InterruptedException e) {
|
||||
log.error("queryDatabaseSchema error", e);
|
||||
}
|
||||
metaSchema.setDatabases(databases);
|
||||
|
||||
} else {
|
||||
List<Schema> schemas = metaData.schemas(null);
|
||||
List<Schema> schemas = metaData.schemas(Chat2DBContext.getConnection(), null);
|
||||
metaSchema.setSchemas(schemas);
|
||||
}
|
||||
return metaSchema;
|
||||
@ -82,39 +85,39 @@ public class DatabaseServiceImpl implements DatabaseService {
|
||||
|
||||
@Override
|
||||
public ActionResult deleteDatabase(DatabaseOperationParam param) {
|
||||
Chat2DBContext.getDBManage().dropDatabase(param.getDatabaseName());
|
||||
Chat2DBContext.getDBManage().dropDatabase(Chat2DBContext.getConnection(),param.getDatabaseName());
|
||||
return ActionResult.isSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResult createDatabase(DatabaseOperationParam param) {
|
||||
Chat2DBContext.getDBManage().createDatabase(param.getDatabaseName());
|
||||
Chat2DBContext.getDBManage().createDatabase(Chat2DBContext.getConnection(),param.getDatabaseName());
|
||||
return ActionResult.isSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResult modifyDatabase(DatabaseOperationParam param) {
|
||||
Chat2DBContext.getDBManage().modifyDatabase(param.getDatabaseName(), param.getNewDatabaseName());
|
||||
Chat2DBContext.getDBManage().modifyDatabase(Chat2DBContext.getConnection(),param.getDatabaseName(), param.getNewDatabaseName());
|
||||
return ActionResult.isSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResult deleteSchema(SchemaOperationParam param) {
|
||||
Chat2DBContext.getDBManage().dropSchema(param.getDatabaseName(), param.getSchemaName());
|
||||
Chat2DBContext.getDBManage().dropSchema(Chat2DBContext.getConnection(),param.getDatabaseName(), param.getSchemaName());
|
||||
return ActionResult.isSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResult createSchema(SchemaOperationParam param) {
|
||||
Chat2DBContext.getDBManage().createSchema(param.getDatabaseName(), param.getSchemaName());
|
||||
Chat2DBContext.getDBManage().createSchema(Chat2DBContext.getConnection(),param.getDatabaseName(), param.getSchemaName());
|
||||
return ActionResult.isSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResult modifySchema(SchemaOperationParam param) {
|
||||
Chat2DBContext.getDBManage().modifySchema(param.getDatabaseName(), param.getSchemaName(),
|
||||
Chat2DBContext.getDBManage().modifySchema(Chat2DBContext.getConnection(),param.getDatabaseName(), param.getSchemaName(),
|
||||
param.getNewSchemaName());
|
||||
return ActionResult.isSuccess();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -155,7 +155,7 @@ public class DlTemplateServiceImpl implements DlTemplateService {
|
||||
private ExecuteResult execute(String sql) {
|
||||
ExecuteResult executeResult;
|
||||
try {
|
||||
executeResult = SQLExecutor.getInstance().execute(sql);
|
||||
executeResult = SQLExecutor.getInstance().execute(Chat2DBContext.getConnection(),sql);
|
||||
} catch (SQLException e) {
|
||||
log.warn("执行sql:{}异常", sql, e);
|
||||
executeResult = ExecuteResult.builder()
|
||||
|
@ -10,6 +10,6 @@ import org.springframework.stereotype.Service;
|
||||
public class FunctionServiceImpl implements FunctionService {
|
||||
@Override
|
||||
public ListResult<Function> functions(String databaseName, String schemaName) {
|
||||
return ListResult.of(Chat2DBContext.getMetaData().functions(databaseName, schemaName));
|
||||
return ListResult.of(Chat2DBContext.getMetaData().functions(Chat2DBContext.getConnection(),databaseName, schemaName));
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,6 @@ public class ProcedureServiceImpl implements ProcedureService {
|
||||
|
||||
@Override
|
||||
public ListResult<Procedure> procedures(String databaseName, String schemaName) {
|
||||
return ListResult.of(Chat2DBContext.getMetaData().procedures(databaseName, schemaName));
|
||||
return ListResult.of(Chat2DBContext.getMetaData().procedures(Chat2DBContext.getConnection(),databaseName, schemaName));
|
||||
}
|
||||
}
|
||||
|
@ -53,14 +53,14 @@ public class TableServiceImpl implements TableService {
|
||||
@Override
|
||||
public DataResult<String> showCreateTable(ShowCreateTableParam param) {
|
||||
MetaData metaSchema = Chat2DBContext.getMetaData();
|
||||
String ddl = metaSchema.tableDDL(param.getDatabaseName(), param.getSchemaName(), param.getTableName());
|
||||
String ddl = metaSchema.tableDDL(Chat2DBContext.getConnection(), param.getDatabaseName(), param.getSchemaName(), param.getTableName());
|
||||
return DataResult.of(ddl);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResult drop(DropParam param) {
|
||||
DBManage metaSchema = Chat2DBContext.getDBManage();
|
||||
metaSchema.dropTable(param.getDatabaseName(), param.getTableSchema(), param.getTableName());
|
||||
metaSchema.dropTable(Chat2DBContext.getConnection(),param.getDatabaseName(), param.getTableSchema(), param.getTableName());
|
||||
return ActionResult.isSuccess();
|
||||
}
|
||||
|
||||
@ -79,13 +79,13 @@ public class TableServiceImpl implements TableService {
|
||||
@Override
|
||||
public DataResult<Table> query(TableQueryParam param, TableSelector selector) {
|
||||
MetaData metaSchema = Chat2DBContext.getMetaData();
|
||||
List<Table> tables = metaSchema.tables(param.getDatabaseName(), param.getSchemaName(), param.getTableName());
|
||||
List<Table> tables = metaSchema.tables(Chat2DBContext.getConnection(),param.getDatabaseName(), param.getSchemaName(), param.getTableName());
|
||||
if (!CollectionUtils.isEmpty(tables)) {
|
||||
Table table = tables.get(0);
|
||||
table.setIndexList(
|
||||
metaSchema.indexes(param.getDatabaseName(), param.getSchemaName(), param.getTableName()));
|
||||
metaSchema.indexes(Chat2DBContext.getConnection(),param.getDatabaseName(), param.getSchemaName(), param.getTableName()));
|
||||
table.setColumnList(
|
||||
metaSchema.columns(param.getDatabaseName(), param.getSchemaName(), param.getTableName()));
|
||||
metaSchema.columns(Chat2DBContext.getConnection(),param.getDatabaseName(), param.getSchemaName(), param.getTableName()));
|
||||
return DataResult.of(table);
|
||||
}
|
||||
return DataResult.of(null);
|
||||
@ -104,7 +104,7 @@ public class TableServiceImpl implements TableService {
|
||||
|
||||
List<Table> list = CacheManage.getList(tableKey, Table.class,
|
||||
(key) -> param.isRefresh(), (key) ->
|
||||
metaSchema.tables(param.getDatabaseName(), param.getSchemaName(), param.getTableName()));
|
||||
metaSchema.tables(Chat2DBContext.getConnection(),param.getDatabaseName(), param.getSchemaName(), param.getTableName()));
|
||||
|
||||
list = pinTable(list, param);
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
@ -144,13 +144,13 @@ public class TableServiceImpl implements TableService {
|
||||
@Override
|
||||
public List<TableColumn> queryColumns(TableQueryParam param) {
|
||||
MetaData metaSchema = Chat2DBContext.getMetaData();
|
||||
return metaSchema.columns(param.getDatabaseName(), param.getSchemaName(), param.getTableName(), null);
|
||||
return metaSchema.columns(Chat2DBContext.getConnection(),param.getDatabaseName(), param.getSchemaName(), param.getTableName(), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TableIndex> queryIndexes(TableQueryParam param) {
|
||||
MetaData metaSchema = Chat2DBContext.getMetaData();
|
||||
return metaSchema.indexes(param.getDatabaseName(), param.getSchemaName(), param.getTableName());
|
||||
return metaSchema.indexes(Chat2DBContext.getConnection(),param.getDatabaseName(), param.getSchemaName(), param.getTableName());
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,6 @@ import org.springframework.stereotype.Service;
|
||||
public class TriggerServiceImpl implements TriggerService {
|
||||
@Override
|
||||
public ListResult<Trigger> triggers(String databaseName, String schemaName) {
|
||||
return ListResult.of(Chat2DBContext.getMetaData().triggers(databaseName, schemaName));
|
||||
return ListResult.of(Chat2DBContext.getMetaData().triggers(Chat2DBContext.getConnection(),databaseName, schemaName));
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,6 @@ public class ViewServiceImpl implements ViewService {
|
||||
|
||||
@Override
|
||||
public ListResult<Table> views(String databaseName, String schemaName) {
|
||||
return ListResult.of(Chat2DBContext.getMetaData().views(databaseName, schemaName));
|
||||
return ListResult.of(Chat2DBContext.getMetaData().views(Chat2DBContext.getConnection(),databaseName, schemaName));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user