| | |
| | | */ |
| | | @Service |
| | | public class ConnectionConfigurationService extends AbstractBaseService implements IConnectionConfigurationService { |
| | | @Autowired |
| | | public BaseDao baseDao; |
| | | @Autowired |
| | | PermissionService permissionService; |
| | | @Autowired |
| | | QueryFilterService queryFilterService; |
| | | @Autowired |
| | | public BaseDao baseDao; |
| | | @Autowired |
| | | PermissionService permissionService; |
| | | @Autowired |
| | | QueryFilterService queryFilterService; |
| | | |
| | | /** |
| | | * 数据同步连接配置 --本地同步 |
| | | * |
| | | * @param fse |
| | | * @throws BaseException |
| | | */ |
| | | private void currentConnectionConfigTables(FieldSetEntity fse, String condition) throws BaseException { |
| | | BaseUtil.createCreatorAndCreationTime(fse); |
| | | baseDao.saveFieldSetEntity(fse); |
| | | String uuid = fse.getUUID(); |
| | | DataTableEntity dt = baseDao.listTable("SELECT table_name,? as database_config_uuid from product_sys_datamodel_table_field_v where length(table_name)>0 " + condition + " GROUP BY table_name ", new Object[]{uuid}); |
| | | dt.getMeta().setTableName(new Object[]{CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD}); |
| | | add(dt); |
| | | } |
| | | /** |
| | | * 数据同步连接配置 --本地同步 |
| | | * |
| | | * @param fse |
| | | * @throws BaseException |
| | | */ |
| | | private void currentConnectionConfigTables(FieldSetEntity fse, String condition) throws BaseException { |
| | | BaseUtil.createCreatorAndCreationTime(fse); |
| | | baseDao.saveFieldSetEntity(fse); |
| | | String uuid = fse.getUUID(); |
| | | DataTableEntity dt = baseDao.listTable("SELECT table_name,? as database_config_uuid from product_sys_datamodel_table_field_v where length(table_name)>0 " + condition + " GROUP BY table_name ", new Object[]{uuid}); |
| | | dt.getMeta().setTableName(new Object[]{CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD}); |
| | | add(dt); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 同步本库字段名 |
| | | * |
| | | * @param fse |
| | | * @param tableName 表名 |
| | | * @throws BaseException |
| | | */ |
| | | private void currentConnectionConfigFields(FieldSetEntity fse, String tableName) throws BaseException { |
| | | BaseUtil.createCreatorAndCreationTime(fse); |
| | | if (!StringUtils.isEmpty(fse.getUUID())) { |
| | | // 删除已存在的配置 重新插入最新配置 |
| | | baseDao.delete(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD, "database_config_uuid=?", new Object[]{fse.getUUID()}); |
| | | } |
| | | baseDao.saveFieldSetEntity(fse); |
| | | String uuid = fse.getUUID(); |
| | | /** |
| | | * 同步本库字段名 |
| | | * |
| | | * @param fse |
| | | * @param tableName 表名 |
| | | * @throws BaseException |
| | | */ |
| | | private void currentConnectionConfigFields(FieldSetEntity fse, String tableName) throws BaseException { |
| | | BaseUtil.createCreatorAndCreationTime(fse); |
| | | if (!StringUtils.isEmpty(fse.getUUID())) { |
| | | // 删除已存在的配置 重新插入最新配置 |
| | | baseDao.delete(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD, "database_config_uuid=?", new Object[]{fse.getUUID()}); |
| | | } |
| | | baseDao.saveFieldSetEntity(fse); |
| | | String uuid = fse.getUUID(); |
| | | |
| | | DataTableEntity dt = baseDao.listTable("SELECT table_name,field_name,? as database_config_uuid from product_sys_datamodel_table_field_v where table_name = ? ", new Object[]{uuid, tableName}); |
| | | dt.getMeta().setTableName(new Object[]{CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD}); |
| | | add(dt); |
| | | } |
| | | DataTableEntity dt = baseDao.listTable("SELECT table_name,field_name,? as database_config_uuid from product_sys_datamodel_table_field_v where table_name = ? ", new Object[]{uuid, tableName}); |
| | | dt.getMeta().setTableName(new Object[]{CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD}); |
| | | add(dt); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public String saveConnectionConfiguration(FieldSetEntity fs) throws BaseException, SQLException, ClassNotFoundException { |
| | | String uuid = fs.getUUID(); |
| | | Connection conn = this.runConnectionConfiguration(fs); |
| | | String sourceType = Global.getSystemConfig("data.source.type", ""); |
| | | if (BaseUtil.strIsNull(uuid)) { |
| | | //数据库类型相同 |
| | | if (sourceType != null && sourceType.equalsIgnoreCase(fs.getString(CmnConst.DATABASE_TYPE))) { |
| | | if ("/".equals(fs.getString(CmnConst.IP_ADDRESS))) { |
| | | // 修改了 product_sys_database_tablename_field 的表结构需要修改 此方法 |
| | | this.currentConnectionConfigTables(fs, ""); |
| | | return fs.getUUID(); |
| | | } |
| | | } |
| | | fs.setValue("org_level_uuid", SpringMVCContextHolder.getCurrentUser().getOrg_level_uuid()); |
| | | fs.setValue("created_by", SpringMVCContextHolder.getCurrentUser().getUser_id()); |
| | | fs.setValue("created_utc_datetime", new Date()); |
| | | @Override |
| | | @Transactional |
| | | public String saveConnectionConfiguration(FieldSetEntity fs) throws BaseException, SQLException, ClassNotFoundException { |
| | | String uuid = fs.getUUID(); |
| | | Connection conn = this.runConnectionConfiguration(fs); |
| | | String sourceType = Global.getSystemConfig("data.source.type", ""); |
| | | if (BaseUtil.strIsNull(uuid)) { |
| | | //数据库类型相同 |
| | | if (sourceType != null && sourceType.equalsIgnoreCase(fs.getString(CmnConst.DATABASE_TYPE))) { |
| | | if ("/".equals(fs.getString(CmnConst.IP_ADDRESS))) { |
| | | // 修改了 product_sys_database_tablename_field 的表结构需要修改 此方法 |
| | | this.currentConnectionConfigTables(fs, ""); |
| | | return fs.getUUID(); |
| | | } |
| | | } |
| | | fs.setValue("org_level_uuid", SpringMVCContextHolder.getCurrentUser().getOrg_level_uuid()); |
| | | fs.setValue("created_by", SpringMVCContextHolder.getCurrentUser().getUser_id()); |
| | | fs.setValue("created_utc_datetime", new Date()); |
| | | |
| | | uuid = baseDao.add(fs); |
| | | if (conn != null) { |
| | | this.saveTableName(conn, fs, null); |
| | | } else { |
| | | throw new BaseException(SystemCode.GET_JDBC_CONNECT_FAIL.getValue(), SystemCode.GET_JDBC_CONNECT_FAIL.getText()); |
| | | } |
| | | } else { |
| | | DataTableEntity sync_config = baseDao.listTable(CmnConst.PRODUCT_SYS_DATABASE_SYNC_CONFIG, " database_config_uuid = ? ", new String[]{uuid}); |
| | | if (BaseUtil.dataTableIsEmpty(sync_config)) { |
| | | //直接删除表 从新保存表名 |
| | | baseDao.delete(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD, " database_config_uuid = ? ", new String[]{uuid}); |
| | | //数据库类型相同 |
| | | if (sourceType != null && sourceType.equalsIgnoreCase(fs.getString(CmnConst.DATABASE_TYPE))) { |
| | | if ("/".equals(fs.getString(CmnConst.IP_ADDRESS))) { |
| | | // 修改了 product_sys_database_tablename_field 的表结构需要修改 此方法 |
| | | this.currentConnectionConfigTables(fs, ""); |
| | | return fs.getUUID(); |
| | | } |
| | | } |
| | | if (conn != null) { |
| | | this.saveTableName(conn, fs, null); |
| | | } else { |
| | | throw new BaseException(SystemCode.GET_JDBC_CONNECT_FAIL.getValue(), SystemCode.GET_JDBC_CONNECT_FAIL.getText()); |
| | | } |
| | | fs.setValue("updated_by", SpringMVCContextHolder.getCurrentUser().getUser_id()); |
| | | fs.setValue("updated_utc_datetime", new Date()); |
| | | baseDao.update(fs); |
| | | try { |
| | | conn.close(); |
| | | } catch (SQLException e) { |
| | | throw new BaseException(e.toString(), ""); |
| | | } |
| | | } else { |
| | | //已创建同步的表不更新 |
| | | List<String> originName = Lists.newArrayList(); |
| | | for (int i = 0; i < sync_config.getRows(); i++) { |
| | | FieldSetEntity syncFse = sync_config.getFieldSetEntity(i); |
| | | originName.add(syncFse.getString(CmnConst.DATA_ORIGIN_NAME)); |
| | | } |
| | | String and = BaseUtil.buildQuestionMarkFilter("", originName.toArray(), false); |
| | | //先删除其他表 |
| | | baseDao.delete(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD, " database_config_uuid = ? AND table_name " + and, new String[]{uuid}); |
| | | //数据库类型相同 |
| | | if (sourceType != null && sourceType.equalsIgnoreCase(fs.getString(CmnConst.DATABASE_TYPE))) { |
| | | if ("/".equals(fs.getString(CmnConst.IP_ADDRESS))) { |
| | | // 修改了 product_sys_database_tablename_field 的表结构需要修改 此方法 |
| | | this.currentConnectionConfigTables(fs, " and table_name " + and); |
| | | return fs.getUUID(); |
| | | } |
| | | } |
| | | if (conn != null) { |
| | | this.saveTableName(conn, fs, and); |
| | | } else { |
| | | throw new BaseException(SystemCode.GET_JDBC_CONNECT_FAIL.getValue(), SystemCode.GET_JDBC_CONNECT_FAIL.getText()); |
| | | } |
| | | } |
| | | baseDao.update(fs); |
| | | } |
| | | return uuid; |
| | | } |
| | | uuid = baseDao.add(fs); |
| | | if (conn != null) { |
| | | this.saveTableName(conn, fs, null); |
| | | } else { |
| | | throw new BaseException(SystemCode.GET_JDBC_CONNECT_FAIL.getValue(), SystemCode.GET_JDBC_CONNECT_FAIL.getText()); |
| | | } |
| | | } else { |
| | | DataTableEntity sync_config = baseDao.listTable(CmnConst.PRODUCT_SYS_DATABASE_SYNC_CONFIG, " database_config_uuid = ? ", new String[]{uuid}); |
| | | if (BaseUtil.dataTableIsEmpty(sync_config)) { |
| | | //直接删除表 从新保存表名 |
| | | baseDao.delete(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD, " database_config_uuid = ? ", new String[]{uuid}); |
| | | //数据库类型相同 |
| | | if (sourceType != null && sourceType.equalsIgnoreCase(fs.getString(CmnConst.DATABASE_TYPE))) { |
| | | if ("/".equals(fs.getString(CmnConst.IP_ADDRESS))) { |
| | | // 修改了 product_sys_database_tablename_field 的表结构需要修改 此方法 |
| | | this.currentConnectionConfigTables(fs, ""); |
| | | return fs.getUUID(); |
| | | } |
| | | } |
| | | if (conn != null) { |
| | | this.saveTableName(conn, fs, null); |
| | | } else { |
| | | throw new BaseException(SystemCode.GET_JDBC_CONNECT_FAIL.getValue(), SystemCode.GET_JDBC_CONNECT_FAIL.getText()); |
| | | } |
| | | fs.setValue("updated_by", SpringMVCContextHolder.getCurrentUser().getUser_id()); |
| | | fs.setValue("updated_utc_datetime", new Date()); |
| | | baseDao.update(fs); |
| | | try { |
| | | conn.close(); |
| | | } catch (SQLException e) { |
| | | throw new BaseException(e.toString(), ""); |
| | | } |
| | | } else { |
| | | //已创建同步的表不更新 |
| | | List<String> originName = Lists.newArrayList(); |
| | | for (int i = 0; i < sync_config.getRows(); i++) { |
| | | FieldSetEntity syncFse = sync_config.getFieldSetEntity(i); |
| | | originName.add(syncFse.getString(CmnConst.DATA_ORIGIN_NAME)); |
| | | } |
| | | String and = BaseUtil.buildQuestionMarkFilter("", originName.toArray(), false); |
| | | //先删除其他表 |
| | | baseDao.delete(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD, " database_config_uuid = ? AND table_name " + and, new String[]{uuid}); |
| | | //数据库类型相同 |
| | | if (sourceType != null && sourceType.equalsIgnoreCase(fs.getString(CmnConst.DATABASE_TYPE))) { |
| | | if ("/".equals(fs.getString(CmnConst.IP_ADDRESS))) { |
| | | // 修改了 product_sys_database_tablename_field 的表结构需要修改 此方法 |
| | | this.currentConnectionConfigTables(fs, " and table_name " + and); |
| | | return fs.getUUID(); |
| | | } |
| | | } |
| | | if (conn != null) { |
| | | this.saveTableName(conn, fs, and); |
| | | } else { |
| | | throw new BaseException(SystemCode.GET_JDBC_CONNECT_FAIL.getValue(), SystemCode.GET_JDBC_CONNECT_FAIL.getText()); |
| | | } |
| | | } |
| | | baseDao.update(fs); |
| | | } |
| | | return uuid; |
| | | } |
| | | |
| | | //获取表名和字段名 |
| | | public void saveTableNameAndFieldName(Connection con, FieldSetEntity fs) throws BaseException { |
| | | String uuid = fs.getString(CmnConst.UUID); |
| | | String databaseType = fs.getString(CmnConst.DATABASE_TYPE);//数据库类型 |
| | | String sql; |
| | | if ("mysql".equals(databaseType)) { //数据库名称 |
| | | sql = "select TABLE_NAME,COLUMN_NAME from information_schema.COLUMNS WHERE TABLE_SCHEMA = '" + fs.getString(CmnConst.DATABASE_NAME) + "'"; |
| | | } else if ("oracle".equals(databaseType)) { //用户名 分大小写 |
| | | sql = "select TABLE_NAME,COLUMN_NAME from all_tab_columns"; |
| | | } else if ("sqlserver".equals(databaseType)) { //数据库名称 |
| | | sql = "SELECT a.name TABLE_NAME,b.name COLUMN_NAME FROM " + fs.getString(CmnConst.DATABASE_NAME) + "..SysObjects a " + |
| | | "LEFT JOIN " + fs.getString(CmnConst.DATABASE_NAME) + "..SysColumns b ON a.id = b.id Where a.XType='U' " + |
| | | "ORDER BY a.name "; |
| | | } else if ("informix".equals(databaseType)) { //数据库名称 |
| | | sql = "SELECT t.tabname TABLE_NAME,c.colname COLUMN_NAME" + |
| | | " FROM \"informix\".systables AS t\n" + |
| | | " JOIN \"informix\".syscolumns AS c ON t.tabid = c.tabid\n" + |
| | | " WHERE t.tabtype = 'T'\n" + |
| | | " AND t.tabid >= 100\n" + |
| | | " ORDER BY t.tabname,c.colno;"; |
| | | } else { |
| | | throw new BaseException(SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getValue(), SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getText()); |
| | | } |
| | | try { |
| | | PreparedStatement ps = con.prepareStatement(sql); |
| | | ResultSet resultSet = ps.executeQuery(); |
| | | while (resultSet.next()) { |
| | | FieldSetEntity field = new FieldSetEntity(); |
| | | field.setTableName(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD); |
| | | field.setValue(CmnConst.DATABASE_CONFIG_UUID, uuid); |
| | | //表名 |
| | | field.setValue(CmnConst.TABLE_NAME, resultSet.getString("TABLE_NAME")); |
| | | //字段名 |
| | | field.setValue(CmnConst.FIELD_NAME, resultSet.getString("COLUMN_NAME")); |
| | | baseDao.add(field); |
| | | } |
| | | } catch (SQLException e) { |
| | | try { |
| | | con.close(); |
| | | } catch (SQLException ex) { |
| | | ex.printStackTrace(); |
| | | throw new BaseException(SystemCode.GET_DATA_SOURCE_FAIL.getValue(), SystemCode.GET_DATA_SOURCE_FAIL.getText() + ex.getMessage()); |
| | | } |
| | | throw new BaseException(SystemCode.GET_DATA_SOURCE_FAIL.getValue(), SystemCode.GET_DATA_SOURCE_FAIL.getText() + e.getMessage()); |
| | | } |
| | | } |
| | | //获取表名和字段名 |
| | | public void saveTableNameAndFieldName(Connection con, FieldSetEntity fs) throws BaseException { |
| | | String uuid = fs.getString(CmnConst.UUID); |
| | | String databaseType = fs.getString(CmnConst.DATABASE_TYPE);//数据库类型 |
| | | String sql; |
| | | if ("mysql".equals(databaseType)) { //数据库名称 |
| | | sql = "select TABLE_NAME,COLUMN_NAME from information_schema.COLUMNS WHERE TABLE_SCHEMA = '" + fs.getString(CmnConst.DATABASE_NAME) + "'"; |
| | | } else if ("oracle".equals(databaseType)) { //用户名 分大小写 |
| | | sql = "select TABLE_NAME,COLUMN_NAME from all_tab_columns"; |
| | | } else if ("sqlserver".equals(databaseType)) { //数据库名称 |
| | | sql = "SELECT a.name TABLE_NAME,b.name COLUMN_NAME FROM " + fs.getString(CmnConst.DATABASE_NAME) + "..SysObjects a " + |
| | | "LEFT JOIN " + fs.getString(CmnConst.DATABASE_NAME) + "..SysColumns b ON a.id = b.id Where a.XType='U' " + |
| | | "ORDER BY a.name "; |
| | | } else if ("informix".equals(databaseType)) { //数据库名称 |
| | | sql = "SELECT t.tabname TABLE_NAME,c.colname COLUMN_NAME" + |
| | | " FROM \"informix\".systables AS t\n" + |
| | | " JOIN \"informix\".syscolumns AS c ON t.tabid = c.tabid\n" + |
| | | " WHERE t.tabtype = 'T'\n" + |
| | | " AND t.tabid >= 100\n" + |
| | | " ORDER BY t.tabname,c.colno;"; |
| | | } else { |
| | | throw new BaseException(SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getValue(), SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getText()); |
| | | } |
| | | try { |
| | | PreparedStatement ps = con.prepareStatement(sql); |
| | | ResultSet resultSet = ps.executeQuery(); |
| | | while (resultSet.next()) { |
| | | FieldSetEntity field = new FieldSetEntity(); |
| | | field.setTableName(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD); |
| | | field.setValue(CmnConst.DATABASE_CONFIG_UUID, uuid); |
| | | //表名 |
| | | field.setValue(CmnConst.TABLE_NAME, resultSet.getString("TABLE_NAME")); |
| | | //字段名 |
| | | field.setValue(CmnConst.FIELD_NAME, resultSet.getString("COLUMN_NAME")); |
| | | baseDao.add(field); |
| | | } |
| | | } catch (SQLException e) { |
| | | try { |
| | | con.close(); |
| | | } catch (SQLException ex) { |
| | | ex.printStackTrace(); |
| | | throw new BaseException(SystemCode.GET_DATA_SOURCE_FAIL.getValue(), SystemCode.GET_DATA_SOURCE_FAIL.getText() + ex.getMessage()); |
| | | } |
| | | throw new BaseException(SystemCode.GET_DATA_SOURCE_FAIL.getValue(), SystemCode.GET_DATA_SOURCE_FAIL.getText() + e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | //获取并保存表名 |
| | | public void saveTableName(Connection con, FieldSetEntity fs, String condition) throws BaseException { |
| | | String uuid = fs.getString(CmnConst.UUID); |
| | | String databaseType = fs.getString(CmnConst.DATABASE_TYPE);//数据库类型 |
| | | String sql; |
| | | if ("mysql".equals(databaseType)) { //数据库名称 |
| | | if (!BaseUtil.strIsNull(condition)) { |
| | | condition = " AND TABLE_NAME " + condition; |
| | | } |
| | | sql = "select TABLE_NAME from information_schema.COLUMNS WHERE TABLE_SCHEMA = '" + fs.getString(CmnConst.DATABASE_NAME) + "' " + condition + " GROUP BY TABLE_NAME"; |
| | | } else if ("oracle".equals(databaseType)) { //用户名 分大小写 |
| | | if (!BaseUtil.strIsNull(condition)) { |
| | | condition = " AND TABLE_NAME " + condition; |
| | | } |
| | | sql = "select TABLE_NAME from all_tab_columns WHERE OWNER = '" + fs.getString(CmnConst.USER_NAME) + "' " + condition + " GROUP BY TABLE_NAME "; |
| | | } else if ("sqlserver".equals(databaseType)) { //数据库名称 |
| | | if (!BaseUtil.strIsNull(condition)) { |
| | | condition = " AND name" + condition; |
| | | } |
| | | sql = "SELECT name TABLE_NAME FROM " + fs.getString(CmnConst.DATABASE_NAME) + "..SysObjects Where XType='U' " + condition; |
| | | } else if ("informix".equals(databaseType)) { //数据库名称 |
| | | if (!BaseUtil.strIsNull(condition)) { |
| | | condition = " AND tabname " + condition; |
| | | } |
| | | sql = "SELECT tabname TABLE_NAME FROM \"informix\".systables WHERE tabtype = 'T' AND tabid >= 100 " + condition; |
| | | } else { |
| | | throw new BaseException(SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getValue(), SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getText()); |
| | | } |
| | | try { |
| | | PreparedStatement ps = con.prepareStatement(sql); |
| | | SpringMVCContextHolder.getSystemLogger().info("执行sql:\n\t" + sql); |
| | | ResultSet resultSet = ps.executeQuery(); |
| | | while (resultSet.next()) { |
| | | FieldSetEntity field = new FieldSetEntity(); |
| | | field.setTableName(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD); |
| | | field.setValue(CmnConst.DATABASE_CONFIG_UUID, uuid); |
| | | //只取表名 |
| | | field.setValue(CmnConst.TABLE_NAME, resultSet.getString("TABLE_NAME")); |
| | | //字段名 |
| | | //获取并保存表名 |
| | | public void saveTableName(Connection con, FieldSetEntity fs, String condition) throws BaseException { |
| | | String uuid = fs.getString(CmnConst.UUID); |
| | | String databaseType = fs.getString(CmnConst.DATABASE_TYPE);//数据库类型 |
| | | String sql; |
| | | if ("mysql".equals(databaseType)) { //数据库名称 |
| | | if (!BaseUtil.strIsNull(condition)) { |
| | | condition = " AND TABLE_NAME " + condition; |
| | | } |
| | | sql = "select TABLE_NAME from information_schema.COLUMNS WHERE TABLE_SCHEMA = '" + fs.getString(CmnConst.DATABASE_NAME) + "' " + (condition == null ? "" : condition) + " GROUP BY TABLE_NAME"; |
| | | } else if ("oracle".equals(databaseType)) { //用户名 分大小写 |
| | | if (!BaseUtil.strIsNull(condition)) { |
| | | condition = " AND TABLE_NAME " + condition; |
| | | } |
| | | sql = "select TABLE_NAME from all_tab_columns WHERE OWNER = '" + fs.getString(CmnConst.USER_NAME) + "' " + (condition == null ? "" : condition) + " GROUP BY TABLE_NAME "; |
| | | } else if ("sqlserver".equals(databaseType)) { //数据库名称 |
| | | if (!BaseUtil.strIsNull(condition)) { |
| | | condition = " AND name" + condition; |
| | | } |
| | | sql = "SELECT name TABLE_NAME FROM " + fs.getString(CmnConst.DATABASE_NAME) + "..SysObjects Where XType='U' " + (condition == null ? "" : condition); |
| | | } else if ("informix".equals(databaseType)) { //数据库名称 |
| | | if (!BaseUtil.strIsNull(condition)) { |
| | | condition = " AND tabname " + condition; |
| | | } |
| | | sql = "SELECT tabname TABLE_NAME FROM \"informix\".systables WHERE tabtype = 'T' AND tabid >= 100 " + (condition == null ? "" : condition); |
| | | } else { |
| | | throw new BaseException(SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getValue(), SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getText()); |
| | | } |
| | | try { |
| | | PreparedStatement ps = con.prepareStatement(sql); |
| | | SpringMVCContextHolder.getSystemLogger().info("执行sql:\n\t" + sql); |
| | | ResultSet resultSet = ps.executeQuery(); |
| | | while (resultSet.next()) { |
| | | FieldSetEntity field = new FieldSetEntity(); |
| | | field.setTableName(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD); |
| | | field.setValue(CmnConst.DATABASE_CONFIG_UUID, uuid); |
| | | //只取表名 |
| | | field.setValue(CmnConst.TABLE_NAME, resultSet.getString("TABLE_NAME")); |
| | | //字段名 |
| | | // field.setValue(CmnConst.FIELD_NAME,resultSet.getString("COLUMN_NAME")); |
| | | baseDao.add(field); |
| | | } |
| | | } catch (SQLException e) { |
| | | SpringMVCContextHolder.getSystemLogger().error(e); |
| | | SpringMVCContextHolder.getSystemLogger().info("执行sql错误:\n\t" + sql); |
| | | try { |
| | | con.close(); |
| | | } catch (SQLException ex) { |
| | | ex.printStackTrace(); |
| | | throw new BaseException(SystemCode.GET_DATA_SOURCE_FAIL.getValue(), SystemCode.GET_DATA_SOURCE_FAIL.getText() + ex.getMessage()); |
| | | } |
| | | throw new BaseException(SystemCode.GET_DATA_SOURCE_FAIL.getValue(), SystemCode.GET_DATA_SOURCE_FAIL.getText() + e.getMessage()); |
| | | } |
| | | } |
| | | baseDao.add(field); |
| | | } |
| | | } catch (SQLException e) { |
| | | SpringMVCContextHolder.getSystemLogger().error(e); |
| | | SpringMVCContextHolder.getSystemLogger().info("执行sql错误:\n\t" + sql); |
| | | try { |
| | | con.close(); |
| | | } catch (SQLException ex) { |
| | | ex.printStackTrace(); |
| | | throw new BaseException(SystemCode.GET_DATA_SOURCE_FAIL.getValue(), SystemCode.GET_DATA_SOURCE_FAIL.getText() + ex.getMessage()); |
| | | } |
| | | throw new BaseException(SystemCode.GET_DATA_SOURCE_FAIL.getValue(), SystemCode.GET_DATA_SOURCE_FAIL.getText() + e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 查询数据源库 获取并保存字段名 |
| | | * |
| | | * @param fs |
| | | * @return |
| | | * @throws BaseException |
| | | */ |
| | | @Transactional |
| | | @Override |
| | | public Boolean saveField(FieldSetEntity fs) throws BaseException, SQLException, ClassNotFoundException { |
| | | //表名 |
| | | String tableName = fs.getString(CmnConst.TABLE_NAME); |
| | | //数据库连接uuid |
| | | String databaseConfigUuid = fs.getString(CmnConst.DATABASE_CONFIG_UUID); |
| | | //获取连接配置 |
| | | FieldSetEntity configField = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_DATABASE_CONNECTION_CONFIG, databaseConfigUuid, false); |
| | | //数据库类型 |
| | | String databaseType = configField.getString(CmnConst.DATABASE_TYPE); |
| | | //获取数据源连接 |
| | | Connection con = this.runConnectionConfiguration(configField); |
| | | String sourceType = Global.getSystemConfig("data.source.type", ""); |
| | | if (sourceType != null && sourceType.equalsIgnoreCase(configField.getString(CmnConst.DATABASE_TYPE))) { |
| | | if ("/".equals(configField.getString(CmnConst.IP_ADDRESS))) { |
| | | // 修改了 product_sys_database_tablename_field 的表结构需要修改 此方法 |
| | | this.currentConnectionConfigFields(configField, tableName); |
| | | return true; |
| | | } |
| | | } |
| | | String sql; |
| | | if ("mysql".equals(databaseType)) { //数据库名称 |
| | | sql = "select COLUMN_NAME from information_schema.COLUMNS WHERE TABLE_SCHEMA = '" + configField.getString(CmnConst.DATABASE_NAME) + "' AND TABLE_NAME = '" + tableName + "'"; |
| | | } else if ("oracle".equals(databaseType)) { //用户名 分大小写 |
| | | sql = "select COLUMN_NAME from all_tab_columns WHERE OWNER = '" + configField.getString(CmnConst.USER_NAME) + "' AND TABLE_NAME = '" + tableName + "'"; |
| | | } else if ("sqlserver".equals(databaseType)) { |
| | | //数据库名称 |
| | | sql = "SELECT name TABLE_NAME FROM " + fs.getString(CmnConst.DATABASE_NAME) + "..SysColumns WHERE id = ( " + |
| | | " SELECT id FROM " + fs.getString(CmnConst.DATABASE_NAME) + "..SysObjects WHERE XType='U' and name = '" + tableName + "')"; |
| | | } else if ("informix".equals(databaseType)) { //数据库名称 |
| | | sql = " SELECT colname COLUMN_NAME from \"informix\".syscolumns where tabid = ( " + |
| | | " SELECT tabid FROM \"informix\".systables WHERE tabname = '" + tableName + "'); "; |
| | | } else { |
| | | throw new BaseException(SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getValue(), SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getText()); |
| | | } |
| | | /** |
| | | * 查询数据源库 获取并保存字段名 |
| | | * |
| | | * @param fs |
| | | * @return |
| | | * @throws BaseException |
| | | */ |
| | | @Transactional |
| | | @Override |
| | | public Boolean saveField(FieldSetEntity fs) throws BaseException, SQLException, ClassNotFoundException { |
| | | //表名 |
| | | String tableName = fs.getString(CmnConst.TABLE_NAME); |
| | | //数据库连接uuid |
| | | String databaseConfigUuid = fs.getString(CmnConst.DATABASE_CONFIG_UUID); |
| | | //获取连接配置 |
| | | FieldSetEntity configField = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_DATABASE_CONNECTION_CONFIG, databaseConfigUuid, false); |
| | | //数据库类型 |
| | | String databaseType = configField.getString(CmnConst.DATABASE_TYPE); |
| | | //获取数据源连接 |
| | | Connection con = this.runConnectionConfiguration(configField); |
| | | String sourceType = Global.getSystemConfig("data.source.type", ""); |
| | | if (sourceType != null && sourceType.equalsIgnoreCase(configField.getString(CmnConst.DATABASE_TYPE))) { |
| | | if ("/".equals(configField.getString(CmnConst.IP_ADDRESS))) { |
| | | // 修改了 product_sys_database_tablename_field 的表结构需要修改 此方法 |
| | | this.currentConnectionConfigFields(configField, tableName); |
| | | return true; |
| | | } |
| | | } |
| | | String sql; |
| | | if ("mysql".equals(databaseType)) { //数据库名称 |
| | | sql = "select COLUMN_NAME from information_schema.COLUMNS WHERE TABLE_SCHEMA = '" + configField.getString(CmnConst.DATABASE_NAME) + "' AND TABLE_NAME = '" + tableName + "'"; |
| | | } else if ("oracle".equals(databaseType)) { //用户名 分大小写 |
| | | sql = "select COLUMN_NAME from all_tab_columns WHERE OWNER = '" + configField.getString(CmnConst.USER_NAME) + "' AND TABLE_NAME = '" + tableName + "'"; |
| | | } else if ("sqlserver".equals(databaseType)) { |
| | | //数据库名称 |
| | | sql = "SELECT name TABLE_NAME FROM " + fs.getString(CmnConst.DATABASE_NAME) + "..SysColumns WHERE id = ( " + |
| | | " SELECT id FROM " + fs.getString(CmnConst.DATABASE_NAME) + "..SysObjects WHERE XType='U' and name = '" + tableName + "')"; |
| | | } else if ("informix".equals(databaseType)) { //数据库名称 |
| | | sql = " SELECT colname COLUMN_NAME from \"informix\".syscolumns where tabid = ( " + |
| | | " SELECT tabid FROM \"informix\".systables WHERE tabname = '" + tableName + "'); "; |
| | | } else { |
| | | throw new BaseException(SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getValue(), SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getText()); |
| | | } |
| | | |
| | | try { |
| | | PreparedStatement ps = con.prepareStatement(sql); |
| | | ResultSet resultSet = ps.executeQuery(); |
| | | //判断改表名是否需要添加字段 |
| | | try { |
| | | PreparedStatement ps = con.prepareStatement(sql); |
| | | ResultSet resultSet = ps.executeQuery(); |
| | | //判断改表名是否需要添加字段 |
| | | // if(resultSet.getRow() > 0) { |
| | | //先删除之前的数据 |
| | | baseDao.delete(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD, " database_config_uuid = ? and table_name = ? ", new String[]{databaseConfigUuid, tableName}); |
| | | while (resultSet.next()) { |
| | | //先删除之前的数据 |
| | | baseDao.delete(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD, " database_config_uuid = ? and table_name = ? ", new String[]{databaseConfigUuid, tableName}); |
| | | while (resultSet.next()) { |
| | | // String fieldName = fs.getString(CmnConst.FIELD_NAME); |
| | | // if (BaseUtil.strIsNull(fieldName)) { |
| | | // fs.setValue(CmnConst.FIELD_NAME, resultSet.getString("COLUMN_NAME")); |
| | | // baseDao.update(fs); |
| | | // continue; |
| | | // } |
| | | FieldSetEntity field = new FieldSetEntity(); |
| | | field.setTableName(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD); |
| | | field.setValue(CmnConst.DATABASE_CONFIG_UUID, databaseConfigUuid); |
| | | //表名 |
| | | field.setValue(CmnConst.TABLE_NAME, tableName); |
| | | //字段名 |
| | | field.setValue(CmnConst.FIELD_NAME, resultSet.getString("COLUMN_NAME")); |
| | | //再添加新的数据 |
| | | baseDao.add(field); |
| | | } |
| | | FieldSetEntity field = new FieldSetEntity(); |
| | | field.setTableName(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD); |
| | | field.setValue(CmnConst.DATABASE_CONFIG_UUID, databaseConfigUuid); |
| | | //表名 |
| | | field.setValue(CmnConst.TABLE_NAME, tableName); |
| | | //字段名 |
| | | field.setValue(CmnConst.FIELD_NAME, resultSet.getString("COLUMN_NAME")); |
| | | //再添加新的数据 |
| | | baseDao.add(field); |
| | | } |
| | | // } |
| | | } catch (SQLException e) { |
| | | try { |
| | | con.close(); |
| | | } catch (SQLException ex) { |
| | | ex.printStackTrace(); |
| | | throw new BaseException(SystemCode.GET_DATA_SOURCE_FAIL.getValue(), SystemCode.GET_DATA_SOURCE_FAIL.getText() + ex.getMessage()); |
| | | } |
| | | throw new BaseException(SystemCode.GET_DATA_SOURCE_FAIL.getValue(), SystemCode.GET_DATA_SOURCE_FAIL.getText() + e.getMessage()); |
| | | } |
| | | return true; |
| | | } |
| | | } catch (SQLException e) { |
| | | try { |
| | | con.close(); |
| | | } catch (SQLException ex) { |
| | | ex.printStackTrace(); |
| | | throw new BaseException(SystemCode.GET_DATA_SOURCE_FAIL.getValue(), SystemCode.GET_DATA_SOURCE_FAIL.getText() + ex.getMessage()); |
| | | } |
| | | throw new BaseException(SystemCode.GET_DATA_SOURCE_FAIL.getValue(), SystemCode.GET_DATA_SOURCE_FAIL.getText() + e.getMessage()); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public DataTableEntity listConnectionConfiguration(FieldSetEntity fs) throws BaseException { |
| | | String queryFilter; |
| | | if (BaseUtil.dataTableIsEmpty(fs.getSubDataTable("systemSeniorQueryString"))) { |
| | | queryFilter = ""; |
| | | } else { |
| | | queryFilter = queryFilterService.getQueryFilter(fs); |
| | | } |
| | | DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_SYS_DATABASE_CONNECTION_CONFIG, queryFilter, null, null, null, fs.getInteger(CmnConst.PAGESIZE), fs.getInteger(CmnConst.CPAGE)); |
| | | @Override |
| | | public DataTableEntity listConnectionConfiguration(FieldSetEntity fs) throws BaseException { |
| | | String queryFilter; |
| | | if (BaseUtil.dataTableIsEmpty(fs.getSubDataTable("systemSeniorQueryString"))) { |
| | | queryFilter = ""; |
| | | } else { |
| | | queryFilter = queryFilterService.getQueryFilter(fs); |
| | | } |
| | | DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_SYS_DATABASE_CONNECTION_CONFIG, queryFilter, null, null, null, fs.getInteger(CmnConst.PAGESIZE), fs.getInteger(CmnConst.CPAGE)); |
| | | |
| | | return dt; |
| | | } |
| | | return dt; |
| | | } |
| | | |
| | | @Override |
| | | public FieldSetEntity getConnectionConfiguration(FieldSetEntity fs) throws BaseException { |
| | | return baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_DATABASE_CONNECTION_CONFIG, fs.getUUID(), false); |
| | | } |
| | | @Override |
| | | public FieldSetEntity getConnectionConfiguration(FieldSetEntity fs) throws BaseException { |
| | | return baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_DATABASE_CONNECTION_CONFIG, fs.getUUID(), false); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public boolean delConnectionConfiguration(FieldSetEntity fs) throws BaseException { |
| | | String uuid = fs.getUUID(); |
| | | String[] uuids = uuid.split(","); |
| | | DataTableEntity dataTableEntity = baseDao.listTable(CmnConst.PRODUCT_SYS_DATABASE_SYNC_CONFIG, BaseUtil.buildQuestionMarkFilter(CmnConst.DATABASE_CONFIG_UUID, uuids.length, true), uuids); |
| | | if (BaseUtil.dataTableIsEmpty(dataTableEntity)) { |
| | | //删除该连接对应的表名跟字段名 |
| | | baseDao.delete(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD, BaseUtil.buildQuestionMarkFilter(CmnConst.DATABASE_CONFIG_UUID, uuids.length, true), uuids); |
| | | //删除连接配置 |
| | | return baseDao.delete(CmnConst.PRODUCT_SYS_DATABASE_CONNECTION_CONFIG, uuids); |
| | | } else { |
| | | throw new BaseException(SystemCode.SYNC_EXISTING_CONFIGURATION_FAIL.getValue(), SystemCode.SYNC_EXISTING_CONFIGURATION_FAIL.getText()); |
| | | } |
| | | } |
| | | @Override |
| | | @Transactional |
| | | public boolean delConnectionConfiguration(FieldSetEntity fs) throws BaseException { |
| | | String uuid = fs.getUUID(); |
| | | String[] uuids = uuid.split(","); |
| | | DataTableEntity dataTableEntity = baseDao.listTable(CmnConst.PRODUCT_SYS_DATABASE_SYNC_CONFIG, BaseUtil.buildQuestionMarkFilter(CmnConst.DATABASE_CONFIG_UUID, uuids.length, true), uuids); |
| | | if (BaseUtil.dataTableIsEmpty(dataTableEntity)) { |
| | | //删除该连接对应的表名跟字段名 |
| | | baseDao.delete(CmnConst.PRODUCT_SYS_DATABASE_TABLENAME_FIELD, BaseUtil.buildQuestionMarkFilter(CmnConst.DATABASE_CONFIG_UUID, uuids.length, true), uuids); |
| | | //删除连接配置 |
| | | return baseDao.delete(CmnConst.PRODUCT_SYS_DATABASE_CONNECTION_CONFIG, uuids); |
| | | } else { |
| | | throw new BaseException(SystemCode.SYNC_EXISTING_CONFIGURATION_FAIL.getValue(), SystemCode.SYNC_EXISTING_CONFIGURATION_FAIL.getText()); |
| | | } |
| | | } |
| | | |
| | | public Connection runConnectionConfiguration(FieldSetEntity fs) throws BaseException, SQLException, ClassNotFoundException { |
| | | String databaseType = fs.getString(CmnConst.DATABASE_TYPE);//数据库类型 |
| | | String ipAddress = fs.getString(CmnConst.IP_ADDRESS);//ip地址 |
| | | String databaseName = fs.getString(CmnConst.DATABASE_NAME);//数据库名称 |
| | | String portNumber = fs.getString(CmnConst.PORT_NUMBER);//端口号 |
| | | String userName = fs.getString(CmnConst.USER_NAME);//用户名 |
| | | String userPassword = fs.getString(CmnConst.USER_PASSWORD);//密码 |
| | | String instantiation = fs.getString(CmnConst.INSTANTIATION);//实例名 |
| | | String url; |
| | | String diver; |
| | | String sourceType = Global.getSystemConfig("data.source.type", ""); |
| | | if (sourceType != null && sourceType.equalsIgnoreCase(fs.getString(CmnConst.DATABASE_TYPE))) { |
| | | if ("/".equals(fs.getString(CmnConst.IP_ADDRESS))) { |
| | | return ConnectionManager.getConnection(); |
| | | } |
| | | } |
| | | public Connection runConnectionConfiguration(FieldSetEntity fs) throws BaseException, SQLException, ClassNotFoundException { |
| | | String databaseType = fs.getString(CmnConst.DATABASE_TYPE);//数据库类型 |
| | | String ipAddress = fs.getString(CmnConst.IP_ADDRESS);//ip地址 |
| | | String databaseName = fs.getString(CmnConst.DATABASE_NAME);//数据库名称 |
| | | String portNumber = fs.getString(CmnConst.PORT_NUMBER);//端口号 |
| | | String userName = fs.getString(CmnConst.USER_NAME);//用户名 |
| | | String userPassword = fs.getString(CmnConst.USER_PASSWORD);//密码 |
| | | String instantiation = fs.getString(CmnConst.INSTANTIATION);//实例名 |
| | | String url; |
| | | String diver; |
| | | String sourceType = Global.getSystemConfig("data.source.type", ""); |
| | | if (sourceType != null && sourceType.equalsIgnoreCase(fs.getString(CmnConst.DATABASE_TYPE))) { |
| | | if ("/".equals(fs.getString(CmnConst.IP_ADDRESS))) { |
| | | return ConnectionManager.getConnection(); |
| | | } |
| | | } |
| | | // if("null".equals(databaseType) && !BaseUtil.strIsNull(jdbcConnect)){ |
| | | // url = jdbcConnect; |
| | | // if(jdbcConnect.contains("mysql")){ |
| | |
| | | // throw new BaseException("", ""); |
| | | // } |
| | | // }else |
| | | if ("mysql".equals(databaseType)) { |
| | | diver = "com.mysql.cj.jdbc.Driver"; |
| | | url = "jdbc:mysql://" + ipAddress + ":" + portNumber + "/" + databaseName + "?useSSL=false&serverTimezone=UTC"; |
| | | } else if ("oracle".equals(databaseType)) { |
| | | diver = "oracle.jdbc.driver.OracleDriver"; |
| | | url = "jdbc:oracle:thin:@" + ipAddress + ":" + portNumber + ":orcl"; |
| | | } else if ("sqlserver".equals(databaseType)) { |
| | | diver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; |
| | | url = "jdbc:sqlserver://" + ipAddress + ":" + portNumber + ";DataBaseName=" + databaseName; |
| | | } else if ("informix".equals(databaseType)) { |
| | | diver = "com.informix.jdbc.IfxDriver"; |
| | | url = "jdbc:informix-sqli://" + ipAddress + ":" + portNumber + "/" + databaseName + ":informixserver=" + instantiation; |
| | | } else { |
| | | throw new BaseException(SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getValue(), SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getText()); |
| | | } |
| | | if ("mysql".equals(databaseType)) { |
| | | diver = "com.mysql.cj.jdbc.Driver"; |
| | | url = "jdbc:mysql://" + ipAddress + ":" + portNumber + "/" + databaseName + "?useSSL=false&serverTimezone=UTC"; |
| | | } else if ("oracle".equals(databaseType)) { |
| | | diver = "oracle.jdbc.driver.OracleDriver"; |
| | | url = "jdbc:oracle:thin:@" + ipAddress + ":" + portNumber + ":orcl"; |
| | | } else if ("sqlserver".equals(databaseType)) { |
| | | diver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; |
| | | url = "jdbc:sqlserver://" + ipAddress + ":" + portNumber + ";DataBaseName=" + databaseName; |
| | | } else if ("informix".equals(databaseType)) { |
| | | diver = "com.informix.jdbc.IfxDriver"; |
| | | url = "jdbc:informix-sqli://" + ipAddress + ":" + portNumber + "/" + databaseName + ":informixserver=" + instantiation; |
| | | } else { |
| | | throw new BaseException(SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getValue(), SystemCode.SYSTEM_UNKNOWN_DATABASE_TYPE.getText()); |
| | | } |
| | | |
| | | //获取jdbc连接 |
| | | return DataManipulationUtils.getConnection(diver, url, userName, userPassword); |
| | | } |
| | | //获取jdbc连接 |
| | | return DataManipulationUtils.getConnection(diver, url, userName, userPassword); |
| | | } |
| | | |
| | | public JSONArray getSyncTree() throws BaseException { |
| | | DataTableEntity dataTableEntity = baseDao.listTable(CmnConst.PRODUCT_SYS_DATABASE_CONNECTION_CONFIG); |
| | | JSONArray linkArray = new JSONArray(); |
| | | for (int i = 0; i < dataTableEntity.getRows(); i++) { |
| | | JSONObject configObject = new JSONObject(); |
| | | FieldSetEntity fieldSetEntity = dataTableEntity.getFieldSetEntity(i); |
| | | String uuid = fieldSetEntity.getUUID(); |
| | | configObject.put("uuid", uuid);//uuid |
| | | configObject.put("label", fieldSetEntity.getString("connect_name"));//连接名称 |
| | | public JSONArray getSyncTree() throws BaseException { |
| | | DataTableEntity dataTableEntity = baseDao.listTable(CmnConst.PRODUCT_SYS_DATABASE_CONNECTION_CONFIG); |
| | | JSONArray linkArray = new JSONArray(); |
| | | for (int i = 0; i < dataTableEntity.getRows(); i++) { |
| | | JSONObject configObject = new JSONObject(); |
| | | FieldSetEntity fieldSetEntity = dataTableEntity.getFieldSetEntity(i); |
| | | String uuid = fieldSetEntity.getUUID(); |
| | | configObject.put("uuid", uuid);//uuid |
| | | configObject.put("label", fieldSetEntity.getString("connect_name"));//连接名称 |
| | | |
| | | JSONArray syncArray = new JSONArray(); |
| | | DataTableEntity syncData = baseDao.listTable(CmnConst.PRODUCT_SYS_DATABASE_SYNC_CONFIG, " database_config_uuid = ? ", new String[]{uuid}); |
| | | for (int j = 0; j < syncData.getRows(); j++) { |
| | | JSONObject jsonObject = new JSONObject(); |
| | | FieldSetEntity syncField = syncData.getFieldSetEntity(j); |
| | | jsonObject.put("uuid", syncField.getString("uuid")); |
| | | jsonObject.put("label", syncField.getString("system_table_name")); |
| | | syncArray.add(jsonObject); |
| | | } |
| | | configObject.put("children", syncArray); |
| | | linkArray.add(configObject); |
| | | } |
| | | return linkArray; |
| | | } |
| | | JSONArray syncArray = new JSONArray(); |
| | | DataTableEntity syncData = baseDao.listTable(CmnConst.PRODUCT_SYS_DATABASE_SYNC_CONFIG, " database_config_uuid = ? ", new String[]{uuid}); |
| | | for (int j = 0; j < syncData.getRows(); j++) { |
| | | JSONObject jsonObject = new JSONObject(); |
| | | FieldSetEntity syncField = syncData.getFieldSetEntity(j); |
| | | jsonObject.put("uuid", syncField.getString("uuid")); |
| | | jsonObject.put("label", syncField.getString("system_table_name")); |
| | | syncArray.add(jsonObject); |
| | | } |
| | | configObject.put("children", syncArray); |
| | | linkArray.add(configObject); |
| | | } |
| | | return linkArray; |
| | | } |
| | | } |