Hive——使用JDBC查询Hive(13)

1、创建Java项目,引入jar包。

将 /root/training/apache-hive-2.3.0-bin/jdbc 路径下的jar包引入Java项目中。

Hive——使用JDBC查询Hive(13)_第1张图片

2、编写代码

JDBCUtils.java
package com.hive.demo;


import java.sql.*;

/**
 * 工具类
 * 1、获取Connection
 * 2、释放资源
 */
public class JDBCUtils {
    // 定义Hive的Driver
    private static String driver = "org.apache.hive.jdbc.HiveDriver";
    // URI地址
    private static String url = "jdbc:hive2://192.168.159.111:10000/default";

    // 注册Driver
    static {
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    // 获取链接
    public static Connection getConnection(){
        try {
            return DriverManager.getConnection(url);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    // 释放资源
    // 问题:能不能通过Java代码去干预GC?
    public static void release(Connection conn, Statement st, ResultSet rs){
        if(rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                rs = null;
            }
        }
        if(st != null){
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                st = null;
            }
        }
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                conn = null;
            }
        }
    }
}
TestHive.java
package com.hive.demo;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class TestHive {
    public static void main(String[] args) {
        // 查询:select * from emp1;
        Connection conn = null;
        Statement st = null;
        ResultSet rs = null;

        try {
            conn = JDBCUtils.getConnection();
            st = conn.createStatement();
            // 执行SQL
            rs = st.executeQuery("select * from emp1");
            while (rs.next()){
                String ename = rs.getString("ename");
                System.out.println(ename);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 释放资源
            JDBCUtils.release(conn,st,rs);
        }
    }
}

3、运行结果。

如果出现如下错误:

修改hadoop 配置文件 etc/hadoop/core-site.xml,加入如下配置项。

Hive——使用JDBC查询Hive(13)_第2张图片

Hive——使用JDBC查询Hive(13)_第3张图片Hive——使用JDBC查询Hive(13)_第4张图片Hive——使用JDBC查询Hive(13)_第5张图片

 

你可能感兴趣的:(Hive)