资讯详情

spring boot查询hive数据

1、引包

<dependency>     <groupId>org.apache.hive</groupId>     <artifactId>hive-jdbc</artifactId>     <version>2.3.7</version> </dependency>

注意:jar包的版本冲突

2、nacos添加配置信息

hive: name: hive url: jdbc:hive2://10.36.29.34:10000/ods type: com.alibaba.druid.pool.DruidDataSource username: elco password: elco driver-class-name: org.apache.hive.jdbc.HiveDriver initialSize: 3 minIdle: 1 maxActive: 20 maxWait: 600000000 timeBetweenEvictionRunsMillis: 600000000 minEvictableIdleTimeMillis: 30000 validationQuery: select 1 testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: 200000000 filters: stat

3.编写配置加载类

package com.elco.entity;  import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component;  @Component @Data public class JdbcConfig {      private String url;     private String username;     private String password;     private String driverClassName;      public String getDriverClassName() {         return driverClassName;     }     @Value("${hive.driver-class-name}")     public void setDriverClassName(String driverClassName) {         this.driverClassName = driverClassName;     }     public String getUrl() {         return url;     }     @Value("${hive.url}")     public void setUrl(String url) {         this.url = url;     }      public String getUsername() {         return username;     }     @Value ( "${hive.username}" )     public void setUsername(String username) {         this.username = username;     }      public String getPassword() {         return password;     }     @Value ( "${hive.password}" )     public void setPassword(String password) {         this.password = password;     }  }

4、编写hive工具类

package com.elco.utils;  import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.elco.entity.JdbcConfig; import java.sql.*;   public class HiveJDBCUtil {   public static  synchronized Connection getConn( JdbcConfig jdbcConfig) {         String driverClassName =jdbcConfig.getDriverClassName();         String url =jdbcConfig.getUrl();         String username =jdbcConfig.getUsername();         String password =jdbcConfig.getPassword();         Connection connection = null;         try {             Class.forName(driverClassName); //执行驱动             connection = DriverManager.getConnection(url, username, password);         } catch (ClassNotFoundException e) {             e.printStackTrace();         } catch (SQLException e) {             e.printStackTrace();         }          return connection;     }      /**      * 查询接口      * @param sql      * @return      */      public  static JSONArray selectHive( String sql, JdbcConfig jdbcConfig) {          Connection conn1 = getConn(  jdbcConfig);         //连接         PreparedStatement pstmt = null;    //使用预编译语句         ResultSet rs = null;    //获得结果集         JSONArray jsonArray = new JSONArray();         try {              pstmt = conn1.prepareStatement(sql);             rs = pstmt.executeQuery();             ResultSetMetaData metaData = rs.getMetaData();             int in = metaData.getColumnCount();             JSONObject jsonObject;             while (rs.next()) {                 jsonObject = new JSONObject();                 for (int x = 1; x <= in; x  ) {                     jsonObject.put(metaData.getColumnName(x), rs.getString(metaData.getColumnName(x)));                 }                 jsonArray.add(jsonObject);             }         } catch (Exception e) {             throw new RuntimeException(e);         } finally {             //关闭资源,倒关             try {                 if (rs != null) rs.close();                 if (pstmt != null) rs.close();                 if (pstmt != null) pstmt.close();                 if (conn1 != null) conn1.close();  ///必须关闭             } catch (Exception e) {             }        }
        return jsonArray;
    }



}

5、接口调用

  JSONArray dataArray = HiveJDBCUtil.selectHive(sql.toString(), jdbcConfig);

标签: elco光电传感器op18

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台