优化 数据源,添加,修改,删除,测试连接

dev
chao 2024-04-21 19:34:31 +08:00
parent 1378c3f5e8
commit 857423dcd9
4 changed files with 70 additions and 42 deletions

View File

@ -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;
}

View File

@ -143,16 +143,29 @@ public class DataSourceServiceImpl extends ServiceImpl<DataSourceMapper, DataSou
new LambdaQueryWrapper<DataSource>()
.eq(DataSource::getId, id)
);
String driveClass = "";
String jdbcUrl = "";
String driveClass = "";
boolean flag = false;
DataType dataType = dataTypeService.getOne(
new LambdaQueryWrapper<DataType>()
.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:
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()));
@ -167,22 +180,6 @@ public class DataSourceServiceImpl extends ServiceImpl<DataSourceMapper, DataSou
} 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){
flag = testDatasource(driveClass, jdbcUrl, dataSource.getDataSourceUsername(), dataSource.getDataSourcePassword());
}
return flag;
} catch (Exception e) {

View File

@ -52,6 +52,7 @@ public class DataTypeServiceImpl extends ServiceImpl<DataTypeMapper, DataType> 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<DataTypeMapper, DataType> 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<DataTypeMapper, DataType> i
public int deleteDataTypeById(Long id) {
return dataTypeMapper.deleteDataTypeById(id);
}
/**
*
* @param str
* @return
*/
public static String lowerCase(String str){
return str.toLowerCase().replaceAll(" ","");
}
}

View File

@ -1,12 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.etl.data.type.mapper.DataTypeMapper">
<resultMap type="com.etl.data.type.domain.DataType" id="DataTypeResult">
<result property="id" column="id" />
<result property="dataType" column="data_type" />
<result property="driverManager" column="driver_manager" />
<result property="jdbcPre" column="jdbc_pre" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
@ -15,13 +17,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectDataTypeVo">
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
</sql>
<select id="selectDataTypeList" parameterType="com.etl.data.type.domain.DataType" resultMap="DataTypeResult">
<include refid="selectDataTypeVo"/>
<where>
<if test="dataType != null and dataType != ''"> and data_type = #{dataType}</if>
<if test="dataType != null and dataType != ''"> and data_type like concat('%', #{dataType}, '%')</if>
</where>
</select>
@ -34,6 +36,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
insert into data_type
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="dataType != null">data_type,</if>
<if test="driverManager != null">driver_manager,</if>
<if test="jdbcPre != null">jdbc_pre,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
@ -42,6 +46,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="dataType != null">#{dataType},</if>
<if test="driverManager != null">#{driverManager},</if>
<if test="jdbcPre != null">#{jdbcPre},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
@ -54,6 +60,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update data_type
<trim prefix="SET" suffixOverrides=",">
<if test="dataType != null">data_type = #{dataType},</if>
<if test="driverManager != null">driver_manager = #{driverManager},</if>
<if test="jdbcPre != null">jdbc_pre = #{jdbcPre},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>