/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/DatasourceQueryServiceImpl.java
https://github.com/WeiYe-Jing/datax-web · Java · 115 lines · 84 code · 12 blank · 19 comment · 14 complexity · 3df299ba3ae83e1adfb43dacb9d95ed9 MD5 · raw file
- package com.wugui.datax.admin.service.impl;
- import cn.hutool.core.util.ObjectUtil;
- import com.google.common.collect.Lists;
- import com.wugui.datax.admin.entity.JobDatasource;
- import com.wugui.datax.admin.service.DatasourceQueryService;
- import com.wugui.datax.admin.service.JobDatasourceService;
- import com.wugui.datax.admin.tool.query.*;
- import com.wugui.datax.admin.util.JdbcConstants;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.io.IOException;
- import java.sql.SQLException;
- import java.util.List;
- /**
- * datasource query
- *
- * @author zhouhongfa@gz-yibo.com
- * @ClassName JdbcDatasourceQueryServiceImpl
- * @Version 1.0
- * @since 2019/7/31 20:51
- */
- @Service
- public class DatasourceQueryServiceImpl implements DatasourceQueryService {
- @Autowired
- private JobDatasourceService jobDatasourceService;
- @Override
- public List<String> getDBs(Long id) throws IOException {
- //获取数据源对象
- JobDatasource datasource = jobDatasourceService.getById(id);
- return new MongoDBQueryTool(datasource).getDBNames();
- }
- @Override
- public List<String> getTables(Long id, String tableSchema) throws IOException {
- //获取数据源对象
- JobDatasource datasource = jobDatasourceService.getById(id);
- //queryTool组装
- if (ObjectUtil.isNull(datasource)) {
- return Lists.newArrayList();
- }
- if (JdbcConstants.HBASE.equals(datasource.getDatasource())) {
- return new HBaseQueryTool(datasource).getTableNames();
- } else if (JdbcConstants.MONGODB.equals(datasource.getDatasource())) {
- return new MongoDBQueryTool(datasource).getCollectionNames(datasource.getDatabaseName());
- } else {
- BaseQueryTool qTool = QueryToolFactory.getByDbType(datasource);
- if(StringUtils.isBlank(tableSchema)){
- return qTool.getTableNames();
- }else{
- return qTool.getTableNames(tableSchema);
- }
- }
- }
- @Override
- public List<String> getTableSchema(Long id) {
- //获取数据源对象
- JobDatasource datasource = jobDatasourceService.getById(id);
- //queryTool组装
- if (ObjectUtil.isNull(datasource)) {
- return Lists.newArrayList();
- }
- BaseQueryTool qTool = QueryToolFactory.getByDbType(datasource);
- return qTool.getTableSchema();
- }
- @Override
- public List<String> getCollectionNames(long id, String dbName) throws IOException {
- //获取数据源对象
- JobDatasource datasource = jobDatasourceService.getById(id);
- //queryTool组装
- if (ObjectUtil.isNull(datasource)) {
- return Lists.newArrayList();
- }
- return new MongoDBQueryTool(datasource).getCollectionNames(dbName);
- }
- @Override
- public List<String> getColumns(Long id, String tableName) throws IOException {
- //获取数据源对象
- JobDatasource datasource = jobDatasourceService.getById(id);
- //queryTool组装
- if (ObjectUtil.isNull(datasource)) {
- return Lists.newArrayList();
- }
- if (JdbcConstants.HBASE.equals(datasource.getDatasource())) {
- return new HBaseQueryTool(datasource).getColumns(tableName);
- } else if (JdbcConstants.MONGODB.equals(datasource.getDatasource())) {
- return new MongoDBQueryTool(datasource).getColumns(tableName);
- } else {
- BaseQueryTool queryTool = QueryToolFactory.getByDbType(datasource);
- return queryTool.getColumnNames(tableName, datasource.getDatasource());
- }
- }
- @Override
- public List<String> getColumnsByQuerySql(Long datasourceId, String querySql) throws SQLException {
- //获取数据源对象
- JobDatasource jdbcDatasource = jobDatasourceService.getById(datasourceId);
- //queryTool组装
- if (ObjectUtil.isNull(jdbcDatasource)) {
- return Lists.newArrayList();
- }
- BaseQueryTool queryTool = QueryToolFactory.getByDbType(jdbcDatasource);
- return queryTool.getColumnsByQuerySql(querySql);
- }
- }