From 857423dcd9a761cabaf3905f17353098de00bc26 Mon Sep 17 00:00:00 2001 From: chao <3072464591@QQ.com> Date: Sun, 21 Apr 2024 19:34:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=BA=90,=E6=B7=BB=E5=8A=A0,=E4=BF=AE=E6=94=B9,=E5=88=A0?= =?UTF-8?q?=E9=99=A4,=E6=B5=8B=E8=AF=95=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/etl/data/type/domain/DataType.java | 12 ++++ .../service/impl/DataSourceServiceImpl.java | 69 +++++++++---------- .../service/impl/DataTypeServiceImpl.java | 11 +++ .../resources/mapper/data/DataTypeMapper.xml | 20 ++++-- 4 files changed, 70 insertions(+), 42 deletions(-) diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/type/domain/DataType.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/type/domain/DataType.java index 7758866..22b50c1 100644 --- a/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/type/domain/DataType.java +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/type/domain/DataType.java @@ -38,4 +38,16 @@ public class DataType extends BaseEntity { @Excel(name = "数据源类型") private String dataType; + /** + * 注册驱动 + */ + @Excel(name = "注册驱动") + private String driverManager; + + /** + * jdbc前缀 + */ + @Excel(name = "jdbc前缀") + private String jdbcPre; + } diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java index c92526c..b828ed5 100644 --- a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java @@ -143,46 +143,43 @@ public class DataSourceServiceImpl extends ServiceImpl() .eq(DataSource::getId, id) ); - String driveClass = ""; String jdbcUrl = ""; + String driveClass = ""; boolean flag = false; + DataType dataType = dataTypeService.getOne( + new LambdaQueryWrapper() + .eq(DataType::getId, dataSource.getTypeId()) + ); try { - switch (dataSource.getTypeId().intValue()) { - case 1: - driveClass = "com.mysql.cj.jdbc.Driver"; - jdbcUrl = "jdbc:mysql://" + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + "/" + dataSource.getDataSourceDatabaseName() + "?" + dataSource.getAdditionalConfiguration(); - break; - case 2: - // redis - //连接指定的redis - Jedis jedis = new Jedis(dataSource.getDataSourceIp(), Integer.valueOf(dataSource.getDataSourcePort())); - //如果有密码则需要下面这一行 - if (dataSource.getDataSourcePassword() != null && !dataSource.getDataSourcePassword().equals("")){ - jedis.auth(dataSource.getDataSourcePassword()); - } - //查看服务是否运行,运行正常的话返回一个PONG,否则返回一个连接错误 - try { - jedis.ping(); - flag = true; - } catch (Exception e) { - flag = false; - } - break; - case 3: - // oracle数据库 - driveClass = "oracle.jdbc.OracleDriver"; - jdbcUrl = "jdbc:oracle:thin:@" + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + ":" + dataSource.getDataSourceDatabaseName(); - break; - case 4: - driveClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - jdbcUrl = "jdbc:sqlserver://"+ dataSource.getDataSourceIp() +":"+dataSource.getDataSourcePort()+";databaseName="+dataSource.getDataSourceDatabaseName(); - break; - default: - return false; - - } - if (dataSource.getTypeId() != 2){ + if (dataType.getDriverManager() != null && dataType.getJdbcPre() != null){ + if ("mysql".equals(dataType.getDataType())){ + driveClass = dataType.getDriverManager(); + jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + "/" + dataSource.getDataSourceDatabaseName() + "?" + dataSource.getAdditionalConfiguration(); + } + if ("oracle".equals(dataType.getDataType())){ + driveClass = dataType.getDriverManager(); + jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + ":" + dataSource.getDataSourceDatabaseName(); + } + if ("sqlserver".equals(dataType.getDataType())){ + driveClass = dataType.getDriverManager(); + jdbcUrl = dataType.getJdbcPre()+ dataSource.getDataSourceIp() +":"+dataSource.getDataSourcePort()+";databaseName="+dataSource.getDataSourceDatabaseName(); + } flag = testDatasource(driveClass, jdbcUrl, dataSource.getDataSourceUsername(), dataSource.getDataSourcePassword()); + }else { + // redis + //连接指定的redis + Jedis jedis = new Jedis(dataSource.getDataSourceIp(), Integer.valueOf(dataSource.getDataSourcePort())); + //如果有密码则需要下面这一行 + if (dataSource.getDataSourcePassword() != null && !dataSource.getDataSourcePassword().equals("")){ + jedis.auth(dataSource.getDataSourcePassword()); + } + //查看服务是否运行,运行正常的话返回一个PONG,否则返回一个连接错误 + try { + jedis.ping(); + flag = true; + } catch (Exception e) { + flag = false; + } } return flag; } catch (Exception e) { diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/service/impl/DataTypeServiceImpl.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/service/impl/DataTypeServiceImpl.java index 0a0d9cf..5f076d2 100644 --- a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/service/impl/DataTypeServiceImpl.java +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/service/impl/DataTypeServiceImpl.java @@ -52,6 +52,7 @@ public class DataTypeServiceImpl extends ServiceImpl i @Override public int insertDataType(DataType dataType) { dataType.setCreateTime(DateUtils.getNowDate()); + dataType.setDataType(lowerCase(dataType.getDataType())); return dataTypeMapper.insertDataType(dataType); } @@ -64,6 +65,7 @@ public class DataTypeServiceImpl extends ServiceImpl i @Override public int updateDataType(DataType dataType) { dataType.setUpdateTime(DateUtils.getNowDate()); + dataType.setDataType(lowerCase(dataType.getDataType())); return dataTypeMapper.updateDataType(dataType); } @@ -88,4 +90,13 @@ public class DataTypeServiceImpl extends ServiceImpl i public int deleteDataTypeById(Long id) { return dataTypeMapper.deleteDataTypeById(id); } + + /** + * 将所有的大写转换成小写并清除中间所有的空格 + * @param str 需要转换的参数 + * @return 转换后的参数 + */ + public static String lowerCase(String str){ + return str.toLowerCase().replaceAll(" ",""); + } } diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/resources/mapper/data/DataTypeMapper.xml b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/resources/mapper/data/DataTypeMapper.xml index 8786488..e15b4b4 100644 --- a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/resources/mapper/data/DataTypeMapper.xml +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/resources/mapper/data/DataTypeMapper.xml @@ -1,12 +1,14 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + @@ -15,13 +17,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, data_type, remark, create_by, create_time, update_by, update_time from data_type + select id, data_type, driver_manager, jdbc_pre, remark, create_by, create_time, update_by, update_time from data_type @@ -34,26 +36,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into data_type data_type, + driver_manager, + jdbc_pre, remark, create_by, create_time, update_by, update_time, - + #{dataType}, + #{driverManager}, + #{jdbcPre}, #{remark}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, - + update data_type data_type = #{dataType}, + driver_manager = #{driverManager}, + jdbc_pre = #{jdbcPre}, remark = #{remark}, create_by = #{createBy}, create_time = #{createTime},