Hive之JDBC操作

package com.uplooking.bigdata.sql;

import com.uplooking.bigdata.domain.Student;

import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.sql.*;

/**
 * Java版本,最后对结果集进行封装
 */
public class JavaSparkThirftServer {
    public static void main(String[] args) throws Exception {
        Class.forName("org.apache.hive.jdbc.HiveDriver");
        //2、获得连接Connection
        String url = "jdbc:hive2://master:10000/default";
        String username = "root";
        String password = "";
        Connection connection = DriverManager.getConnection(url, username, password);
        //3、获得Statement声明
        String sql = "select pid, pname, page, pgender from person where page between 17 and 20";
        PreparedStatement ps = connection.prepareStatement(sql);
        //4、执行SQL
        ResultSet rs = ps.executeQuery();
        //5、处理返回值
        while(rs.next()) {
            int pid = rs.getInt("pid");
            String pname = rs.getString("pname");
            int page = rs.getInt("page");
            String pgender = rs.getString("pgender");
//            System.out.println(pid + ", " + pname + ", " + page + ", " + pgender);
            /*
                封装结果集
                将以上数据封装到一个对象里面,把该对象返回
                 Student stu = new Student(pid, pname, page, pgender);
                 System.out.println(stu);
                 要想自动对结果集进行封装,就需要通过反射方式来给对象的属性赋值,
                 那么就需要使用数据库表中的元数据(列名--->类中的属性有个对应)
             */
            ResultSetMetaData md = rs.getMetaData();
            int cc = md.getColumnCount();//查询的列数
            System.out.println("----------------------------------------");
            Class clazz = Student.class;
            Object obj = clazz.newInstance();
            for(int c = 1; c <= cc; c++) {
                String columnName = md.getColumnName(c);
                Object columnValue = rs.getObject(columnName);
//                System.out.println("columnName: " + columnName + ", columnValue:" + columnValue);
                PropertyDescriptor pd = new PropertyDescriptor(columnName, clazz);
                Method setMethod = pd.getWriteMethod();
                setMethod.invoke(obj, columnValue);
            }
            System.out.println(obj);
        }
        //6、关闭资源
        rs.close();
        ps.close();
        connection.close();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Hive 1.2.1是Apache Hive的一个版本,它是一个基于Hadoop的数据仓库工具。Hive允许用户使用类似SQL的查询语言HiveQL来查询和分析大规模数据。 JDBC(Java Database Connectivity)是Java编程语言用于与数据库进行连接和交互的API。它提供了一组类和接口,用于执行SQL语句、访问和操纵数据库。JDBC驱动是一种软件组件,它允许Java应用程序通过JDBC API连接到特定数据库系统,如HiveHive 1.2.1提供了基于JDBC的驱动程序,用于支持Java应用程序与Hive数据库的交互。这个驱动程序允许开发人员使用Java编程语言连接到Hive服务、执行查询和修改操作、获取查询结果等。 使用Hive 1.2.1的JDBC驱动,开发人员可以通过编写Java代码来连接到Hive,执行HiveQL查询,并处理返回的结果。它提供了一种灵活和强大的方式来访问和操作Hive数据库中的数据。 要使用Hive 1.2.1的JDBC驱动,首先需要将驱动程序的JAR文件添加到Java应用程序的类路径中。然后,可以使用JDBC API编写代码来建立与Hive的连接、执行查询和操作,最后关闭连接。 总而言之,Hive 1.2.1的JDBC驱动是一个重要的工具,它使得Java开发人员能够通过编写代码与Hive数据库进行交互,执行查询和操作,并获取结果。这样,开发人员可以更轻松地使用Java编程语言来处理和分析大规模的数据。 ### 回答2: Hive 1.2.1的JDBC驱动是用于连接Hive分布式数据仓库的Java程序接口。它是一个开放源代码的驱动程序,旨在允许用户通过Java编程语言与Hive数据库进行交互。 Hive是一个基于Hadoop的数据仓库基础设施,它提供了类似于SQL的查询语言HQL来处理大规模的数据集。Hive的设计灵感来自于关系型数据库,因此它允许用户使用SQL语法来查询和分析存储在Hadoop集群中的数据。 Hive 1.2.1的JDBC驱动提供了一个标准的接口,允许Java开发人员使用JDBC API与Hive进行通信。通过使用这个驱动程序,开发人员可以通过编写Java代码来执行查询、插入和更新操作,以及执行其他与Hive相关的任务。 使用JDBC驱动程序的好处是,它提供了一个通用的方式与Hive进行交互,无论是通过命令行还是通过编程方式。它还提供了连接池的支持,可以帮助管理连接的创建和释放,以提高性能和资源利用率。 Hive 1.2.1的JDBC驱动是通过向HiveServer2发送查询请求和接收结果来实现的。它通过使用底层的Thrift协议与HiveServer2进行通信,以提供高效的数据传输和查询执行。此外,它还提供了一些可选的配置参数,以便用户根据需要对连接和查询进行调整。 总结来说,Hive 1.2.1的JDBC驱动是一个用于连接Hive分布式数据仓库的Java程序接口。它允许Java开发人员使用JDBC API与Hive进行通信,执行查询和操作数据。通过使用这个驱动程序,开发人员可以更方便地与Hive集群进行交互,并实现更复杂的数据分析和查询任务。 ### 回答3: Hive是一个基于Hadoop的数据仓库工具,它允许用户对存储在Hadoop集群中的数据进行查询和分析。Hive提供了一种类似于传统数据库的SQL语言——HiveQL的查询语言,使得非技术人员也可以轻松地利用Hadoop进行数据分析。 HiveJDBC驱动是用于连接Hive和其他应用程序,以便进行数据交互和查询的工具。HiveJDBC驱动允许开发人员使用Java编程语言来访问和操作Hive数据库,从而实现数据的输入、输出和查询。 HiveJDBC驱动提供了一系列的API和工具,使得开发人员可以编写Java程序来连接Hive数据库并执行各种操作,例如创建、删除和查询表,插入和更新数据等。开发人员可以使用JDBC驱动提供的接口和方法,通过建立与Hive服务器的连接,将Hive数据库纳入到他们的应用程序中。 使用HiveJDBC驱动,开发人员可以利用Hive提供的丰富功能,如分区、存储格式和桶等,对海量数据进行处理和分析。同时,JDBC驱动还可以与其他工具和框架结合使用,如Spring等,进一步扩展和优化应用程序的功能。 总之,HiveJDBC驱动是一种非常有价值的工具,它使得开发人员能够使用Java编程语言连接和操作Hive数据库,实现与Hadoop集群的数据交互和查询。通过JDBC驱动,开发人员可以更加灵活、高效地利用Hive进行数据分析和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值