当前位置:网站首页>Convert result set of SQL to set

Convert result set of SQL to set

2022-06-11 05:22:00 Bug repair robot

   try {
                String sql="select *  from course";
                JobDatasource  datasource=new JobDatasource();
                BaseQueryTool queryTool = QueryToolFactory.getByDbType(datasource,true);
                Connection conn = queryTool.getConnection();
                Statement stmt = conn.createStatement();
                ResultSet set = stmt.executeQuery(sql);
                //sql The queried data is converted to a set 
                BeanListHandler<Course> bh=new BeanListHandler<Course>(Course.class);
                List<Course> courseList=bh.handle(set);
                conn.close();
                stmt.close();
                return AjaxResult.success(courseList);
            } catch (SQLException e) {
                logger.error(" Database query failed !, Reasons for failure :"+e.getMessage());
                return AjaxResult.success(e.getMessage());
            }

Tool class for querying data :

package com.appraise.common.tool;


import com.appraise.common.core.domain.entity.JobDatasource;
import com.appraise.common.utils.JdbcConstants;
import com.appraise.common.utils.RdbmsException;

import java.sql.SQLException;

/**
 *  Tool class , Get singleton entity 
 *
 * @author [email protected]
 * @ClassName QueryToolFactory
 * @Version 1.0
 * @since 2019/7/18 9:36
 */
public class QueryToolFactory {

    public static BaseQueryTool getByDbType(JobDatasource jobDatasource,boolean flag) {
        // obtain dbType
        String datasource = jobDatasource.getDatasource();
        if (JdbcConstants.MYSQL.equals(datasource)) {
            return getMySQLQueryToolInstance(jobDatasource,flag);
        } else if (JdbcConstants.ORACLE.equals(datasource)) {
            return getOracleQueryToolInstance(jobDatasource,flag);
        } else if (JdbcConstants.POSTGRESQL.equals(datasource)) {
            return getPostgresqlQueryToolInstance(jobDatasource,flag);
        } else if (JdbcConstants.SQL_SERVER.equals(datasource)) {
            return getSqlserverQueryToolInstance(jobDatasource,flag);
        }else if (JdbcConstants.HIVE.equals(datasource)) {
            return getHiveQueryToolInstance(jobDatasource,flag);
        } else if (JdbcConstants.CLICKHOUSE.equals(datasource)) {
            return getClickHouseQueryToolInstance(jobDatasource,flag);
        }else if (JdbcConstants.HBASE20XSQL.equals(datasource)) {
            return getHbase20XsqlQueryToolQueryToolInstance(jobDatasource,flag);
        }
        throw new UnsupportedOperationException(" The type cannot be found : ".concat(datasource));
    }

    private static BaseQueryTool getMySQLQueryToolInstance(JobDatasource jdbcDatasource,boolean flag) {
        try {
            return new MySQLQueryTool(jdbcDatasource,flag);
        } catch (Exception e) {
            throw RdbmsException.asConnException(JdbcConstants.MYSQL,
                    e,jdbcDatasource.getJdbcUsername(),jdbcDatasource.getDatasourceName());
        }
    }

    private static BaseQueryTool getOracleQueryToolInstance(JobDatasource jdbcDatasource,boolean flag) {
        try {
            return new OracleQueryTool(jdbcDatasource,flag);
        } catch (SQLException e) {
            throw RdbmsException.asConnException(JdbcConstants.ORACLE,
                    e,jdbcDatasource.getJdbcUsername(),jdbcDatasource.getDatasourceName());
        }
    }

    private static BaseQueryTool getPostgresqlQueryToolInstance(JobDatasource jdbcDatasource,boolean flag) {
        try {
            return new PostgresqlQueryTool(jdbcDatasource,flag);
        } catch (SQLException e) {
            throw RdbmsException.asConnException(JdbcConstants.POSTGRESQL,
                    e,jdbcDatasource.getJdbcUsername(),jdbcDatasource.getDatasourceName());
        }
    }

    private static BaseQueryTool getSqlserverQueryToolInstance(JobDatasource jdbcDatasource,boolean flag) {
        try {
            return new SqlServerQueryTool(jdbcDatasource,flag);
        } catch (SQLException e) {
            throw RdbmsException.asConnException(JdbcConstants.SQL_SERVER,
                    e,jdbcDatasource.getJdbcUsername(),jdbcDatasource.getDatasourceName());
        }
    }

    private static BaseQueryTool getHiveQueryToolInstance(JobDatasource jdbcDatasource,boolean flag) {
        try {
            return new HiveQueryTool(jdbcDatasource,flag);
        } catch (SQLException e) {
            throw RdbmsException.asConnException(JdbcConstants.HIVE,
                    e,jdbcDatasource.getJdbcUsername(),jdbcDatasource.getDatasourceName());
        }
    }
    private static BaseQueryTool getClickHouseQueryToolInstance(JobDatasource jdbcDatasource,boolean flag) {
        try {
            return new ClickHouseQueryTool(jdbcDatasource,flag);
        } catch (SQLException e) {
            throw RdbmsException.asConnException(JdbcConstants.CLICKHOUSE,
                    e, jdbcDatasource.getJdbcUsername(), jdbcDatasource.getDatasourceName());
        }
    }

    private static Hbase20XsqlQueryTool getHbase20XsqlQueryToolQueryToolInstance(JobDatasource jdbcDatasource,boolean flag) {
        try {
            return new Hbase20XsqlQueryTool(jdbcDatasource,flag);
        } catch (SQLException e) {
            throw RdbmsException.asConnException(JdbcConstants.HBASE20XSQL,
                    e, jdbcDatasource.getJdbcUsername(), jdbcDatasource.getDatasourceName());
        }
    }
}

原网站

版权声明
本文为[Bug repair robot]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/03/202203020540293504.html