基于jeecgboot的大屏设计器开发——数据源设计(二)

简介: 基于jeecgboot的大屏设计器开发——数据源设计(二)

 今天主要是介绍这部分的后端设计方面。

    通过online表单生成的代码,基本的录入列表都可以用,但相关数据库测试等都需要单独进行编写。

    一、BsSourceTypeController

这个增加一个接口,通过code获取数据

/**
   * 通过code查询
   *
   * @param code
   * @return
   */
  @AutoLog(value = "bs_source_type-通过code查询")
  @ApiOperation(value="bs_source_type-通过code查询", notes="bs_source_type-通过code查询")
  @GetMapping(value = "/queryByCode")
  public Result<?> queryByCode(@RequestParam(name="code",required=true) String code) {
    Result<BsSourceType> result = new Result<BsSourceType>();
        QueryWrapper<BsSourceType> queryWrapper = new QueryWrapper<BsSourceType>();
        queryWrapper.eq("code",code);
        BsSourceType bsSourceType = bsSourceTypeService.getOne(queryWrapper);
        if (bsSourceType == null) {
            result.error500("未找到对应实体");
        } else {
            result.setResult(bsSourceType);
            result.setSuccess(true);
        }
        return result;
  }

   二、BsDataSourceController

 这个要先增加一个测试连接数据源的接口如下:

/**
     * 测试 连接
     * @param connectionParam
     * @return
     */
    @AutoLog(value = "testConnection-测试数据源")
  @ApiOperation(value="testConnection-测试数据源", notes="testConnection-测试数据源")
    @PostMapping("/testConnection")
    public Result<?> testConnection(@Validated @RequestBody ConnectionParam connectionParam) {
        return bsDataSourceService.testConnection(connectionParam);
    }

三、BsDataSourceServiceImpl

增加下面方法

/**
     * 测试 连接
     *
     * @param connectionParam
     * @return
     */
    @Override
    public Result testConnection(ConnectionParam connectionParam) {
        String sourceType = connectionParam.getSourceType();
        String sourceConfig = connectionParam.getSourceConfig();
        DataSourceDto dto = new DataSourceDto();
        dto.setSourceConfig(sourceConfig);
        switch (sourceType) {
            case JdbcConstants.ELASTIC_SEARCH_SQL:
                Result elasticresult =  testElasticsearchSqlConnection(dto);
                if(elasticresult.isSuccess()) {
                  break;
                }
                else {
                  return elasticresult;
                }
            case JdbcConstants.MYSQL:
            case JdbcConstants.KUDU_IMAPLA:
            case JdbcConstants.ORACLE:
            case JdbcConstants.SQL_SERVER:
            case JdbcConstants.JDBC:
            case JdbcConstants.POSTGRESQL:
                Result testresult =  testRelationalDb(dto);
                if(testresult.isSuccess()) {
                  break;
                }
                else {  
                  return testresult;
                }
            case JdbcConstants.HTTP:
                Result httpresult =  testHttp(dto);
                if(httpresult.isSuccess()) {
                  break;
                }
                else {
                  return httpresult;
                }
            default:
              return Result.error("连接失败:" + ResponseCode.DATA_SOURCE_TYPE_DOES_NOT_MATCH_TEMPORARILY);
        }
        log.info("测试连接成功:{}", JSONObject.toJSONString(connectionParam));
        return Result.OK("测试连接成功!");
    }
/**
     * 关系型数据库 测试连接
     *
     * @param dto
     */
    public Result testRelationalDb(DataSourceDto dto) {
        analysisRelationalDbConfig(dto);
        try {
            Connection unPooledConnection = jdbcService.getUnPooledConnection(dto);
            String catalog = unPooledConnection.getCatalog();
            log.info("数据库测试连接成功:{}", catalog);
            unPooledConnection.close();
            return Result.OK("数据库测试连接成功");
        } catch (SQLException e) {
            log.error("error",e);
            if (e.getCause() instanceof ClassNotFoundException) {
              return Result.error(ResponseCode.CLASS_NOT_FOUND, "数据库测试连接失败:" + e.getCause().getMessage());
            } else {
              return Result.error(ResponseCode.DATA_SOURCE_CONNECTION_FAILED, "数据库测试连接失败:" + e.getMessage());
            }
        }
    }

四、效果图:


相关文章
|
前端开发
基于jeecgboot的大屏设计器开发——数据集设计(一)
基于jeecgboot的大屏设计器开发——数据集设计(一)
247 3
|
数据可视化 前端开发 JavaScript
本来不想分享的,但这套可视化大屏确实不错
本来不想分享的,但这套可视化大屏确实不错
|
数据库
基于jeecgboot的大屏设计器开发——数据源设计(三)
基于jeecgboot的大屏设计器开发——数据源设计(三)
146 1
基于jeecgboot的大屏设计器开发——数据源设计(三)
|
JSON Oracle 前端开发
基于jeecgboot的大屏设计器开发——数据源设计(一)
基于jeecgboot的大屏设计器开发——数据源设计(一)
172 0
|
API
解决http下navigator.clipboard为undefined问题
总之,要解决 `navigator.clipboard`为 `undefined`的问题,你需要确保遵循浏览器的安全策略,使用HTTPS,获得用户授权,并在受信任的上下文中使用clipboard API。此外,还要确保你的代码在支持该API的浏览器上运行。如果问题仍然存在,可能需要进一步调查特定浏览器和环境的问题。
1978 3
|
移动开发 前端开发 BI
基于jeecgboot的大屏设计器开发——大屏报表管理(一)
基于jeecgboot的大屏设计器开发——大屏报表管理(一)
301 0
|
XML JavaScript 前端开发
【一种关于flowable 的工作流设计器】workflow-bpmn-modeler-antdv的使用
【一种关于flowable 的工作流设计器】workflow-bpmn-modeler-antdv的使用
2287 0
|
XML Java Android开发
Android Studio App开发之利用视频视图VideoView播放视频讲解及实战(附源码 超详细必看)
vAndroid Studio App开发之利用视频视图VideoView播放视频讲解及实战(附源码 超详细必看)
1037 0