hbase jdbc相关
A table of data representing a database result set, which is usually generated by executing a statement that queries the database.
ResultSet
ResultSet是一个接口,用于存放从sql查询的结果
常用方法
next方法
next() 判断是否有下一个.源码如下
抽象方法,返回值为布尔类型.
public abstract boolean next()
throws java.sql.SQLException
说明
将光标从当前位置向前移动一行。 ResultSet游标最初位于第一行之前; 对该方法的第一次调用next使第一行成为当前行; 第二个调用使第二行成为当前行,依此类推。
当对next方法的调用返回false时,光标将位于最后一行之后。 任何需要当前行的ResultSet方法的调用都会导致抛出SQLException。 如果结果集类型为TYPE_FORWARD_ONLY,则由供应商指定其JDBC驱动程序实现将返回false还是在后续对next的调用上引发SQLException。
如果为当前行打开了输入流,则对next方法的调用将隐式将其关闭。 读取新行时,将清除ResultSet对象的警告链。
getString方法
public abstract String getString(String columnLabel)
throws java.sql.SQLException
以Java编程语言中String的形式检索此ResultSet对象的当前行中指定列的值。
参数:
columnLabel –使用SQL AS子句指定的列的标签。 如果未指定SQL AS子句,则标签为列的名称
返回值:
列值; 如果值为SQL NULL,则返回的值为null
抛出:
java.sql.SQLException-如果columnLabel无效;否则为false。 如果发生数据库访问错误或在封闭的结果集上调用此方法
PreparedStatement类
表示预编译的SQL语句的对象。
SQL语句已预编译并存储在PreparedStatement对象中。 然后可以使用该对象多次有效地执行该语句。
注意:用于设置IN参数值的setter方法(setShort,setString等)必须指定与输入参数的已定义SQL类型兼容的类型。 例如,如果IN参数的SQL类型为INTEGER,则应使用setInt方法。
如果需要任意参数类型转换,则应将setObject方法与目标SQL类型一起使用。
在以下设置参数的示例中,con表示活动连接:
PreparedStatement pstmt = con.prepareStatement(“ UPDATE EMPLOYEESSET SALARY =? WHERE ID =?“);pstmt.setBigDecimal(1,153833.00)pstmt.setInt(2,110592)
setstring方法
public abstract void setString(int parameterIndex,String x)
throws java.sql.SQLException
用法说明
将指定参数设置为给定的Java String值。 驱动程序在将其发送到数据库时,将其转换为SQL VARCHAR或LONGVARCHAR值(取决于参数的大小,相对于驱动程序对VARCHAR值的限制)。
参数:
parameterIndex –第一个参数为1,第二个参数为2,…
x –参数值
抛出java.sql.SQLException-如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在封闭的PreparedStatement上调用此方法
executeQuery方法
public abstract java.sql.ResultSet executeQuery()
throws java.sql.SQLException
在此PreparedStatement对象中执行SQL查询,并返回查询生成的ResultSet对象。
返回值:
包含查询产生的数据的ResultSet对象; 永不为空
抛出:
java.sql.SQLTimeoutException-当驱动程序确定已经超过了setQueryTimeout方法指定的超时值并且至少已尝试取消当前正在运行的Statement时
java.sql.SQLException-如果发生数据库访问错误; 在关闭的PreparedStatement上调用此方法,或者SQL语句不返回ResultSet对象
体系结构
Connection类
与特定数据库的连接(会话)。执行SQL语句,并在连接的上下文中返回结果。
Connection对象的数据库能够提供描述其表,其支持的SQL语法,其存储过程,此连接的功能等信息。此信息是使用getMetaData方法获得的。
注意:配置连接时,JDBC应用程序应使用适当的连接方法,例如setAutoCommit或setTransactionIsolation。当有JDBC方法可用时,应用程序不应直接调用SQL命令来更改连接的配置。默认情况下,Connection对象处于自动提交模式,这意味着它在执行每个语句后自动提交更改。如果禁用了自动提交模式,则必须显式调用方法commit才能提交更改;否则,必须执行以下操作:否则,将不会保存数据库更改。
prepareStatement方法
java.sql.Connection public abstract java.sql.PreparedStatement prepareStatement(String sql)
throws java.sql.SQLException
创建一个PreparedStatement对象,用于将参数化的SQL语句发送到数据库。
可以预编译带有或不带有IN参数的SQL语句,并将其存储在PreparedStatement对象中。然后可以使用该对象多次有效地执行该语句。
注意:此方法已优化用于处理受益于预编译的参数SQL语句。如果驱动程序支持预编译,则prepareStatement方法会将语句发送到数据库以进行预编译。某些驱动程序可能不支持预编译。在这种情况下,在执行PreparedStatement对象之前,该语句可能不会发送到数据库。这对用户没有直接影响;但是,它确实会影响哪些方法抛出某些SQLException对象。
默认情况下,使用返回的PreparedStatement对象创建的结果集的类型为TYPE_FORWARD_ONLY,并发级别为CONCUR_READ_ONLY。可以通过调用getHoldability来确定创建的结果集的可保存性。
参数:
sql –可能包含一个或多个“?”的SQL语句参数占位符
返回值:
包含预编译的SQL语句的新的默认PreparedStatement对象
抛出:
java.sql.SQLException-如果发生数据库访问错误或在关闭的连接上调用此方法
DriveManager类
用于管理一组JDBC驱动程序的基本服务。注意:JDBC 2.0 API中的新增功能javax.sql.DataSource接口提供了另一种连接数据源的方法。使用DataSource对象是连接到数据源的首选方法。
作为其初始化的一部分,DriverManager类将尝试加载“ jdbc.drivers”系统属性中引用的驱动程序类。这允许用户自定义其应用程序使用的JDBC驱动程序。例如,在〜/ .hotjava / properties文件中,您可以指定:
jdbc.drivers = foo.bah.Driver:wombat.sql.Driver:bad.taste.ourDriver
DriverManager方法getConnection和getDrivers已得到增强,以支持Java Standard Edition Service Provider机制。 JDBC 4.0驱动程序必须包含文件META-INF / services / java.sql.Driver。该文件包含java.sql.Driver的JDBC驱动程序实现的名称。例如,要加载my.sql.Driver类,META-INF / services / java.sql.Driver文件将包含以下条目:
my.sql.Driver
应用程序不再需要使用Class.forName()显式加载JDBC驱动程序。当前使用Class.forName()加载JDBC驱动程序的现有程序将继续运行,而无需进行修改。
调用方法getConnection时,DriverManager将尝试从初始化时加载的驱动程序和使用与当前applet或应用程序相同的类加载器显式加载的驱动程序中查找合适的驱动程序。
代码示例
public class JDBCdemo {public static void main(String[] args) throws ClassNotFoundException, SQLException {Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");Properties prop = new Properties();prop.setProperty("phoenix.schema.isNamespaceMappingEnabled", "true");Connection conn = DriverManager.getConnection("jdbc:phoenix:server01,server02,server03:2181", prop);PreparedStatement prep = conn.prepareStatement("select state,count(*) rn from us_population where state in(?,?) group by state");prep.setString(1, "TX");prep.setString(2, "AZ");/*** ResultSet 对象具有指向其当前数据行的指针。* 最初,指针被置于第一行之前。next 方法将指针移动到下一行;* 因为该方法在 ResultSet 对象中没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集。* 默认的 ResultSet 对象不可更新,仅有一个向前移动的指针。因此,只能迭代它一次,并且只能按从第一行到最后一行的顺序进行.*/ResultSet resultSet = prep.executeQuery();while (resultSet.next()) {/*** 对于获取方法,JDBC 驱动程序尝试将基础数据转换为在获取方法中指定的 Java 类型,并返回适当的 Java 值。* JDBC 规范有一个表,显示允许的从 SQL 类型到供 ResultSet 获取方法使用的 Java 类型的映射关系。*/String state = resultSet.getString("state");int num = resultSet.getInt("rn");System.out.println(state + "\t" + num);}resultSet.close();prep.close();conn.close();}
}
hbase jdbc相关相关推荐
- 2021年大数据HBase(五):HBase的相关操作JavaAPI方式
全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase的相关操作-JavaAPI方式 一.需求说明 ...
- 2021年大数据HBase(四):HBase的相关操作-客户端命令式!【建议收藏】
全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase的相关操作-客户端命令式 1.进入HBase ...
- 大数据HBase(四):HBase的相关操作-客户端命令式
文章目录 HBase的相关操作-客户端命令式 1.进入HBase客户端命令操作界面 2.查看帮助命令
- hbase shell相关命令
alter //修改列族模式 count //统计表中的行的数量 create //创建表 describe //显示表相关的详细信息 delete //删除指定对象值(可以为表.行.列对应的值) d ...
- MySQL攻略 - JDBC程序SQL注入,PreparedStatement接口详解与案例练习,JDBC相关API小结
文章目录 SQL注入 Statement详解 基本介绍 Navicat演示SQL注入 JDBC演示SQL注入 PreparedStatement详解 基本介绍 预处理好处 预处理案例(selete语句 ...
- hue 查询 hbase 操作相关参考
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 界面操作说明 进入hue中的hbase 进入表的查询界面 界面说明 查询语句 ,表示结束查询,可以不 ...
- 启动hbase的相关命令及流程
启动hbase的命令 1.关闭三台虚拟机的防火墙 systemctl stop firewalld 2.开启zookeeper节点 zkServer.sh start 3.开启所有集群节点 start ...
- 2021年大数据HBase(十四):HBase的原理及其相关的工作机制
全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase的原理及其相关的工作机制 一.HBase的flus ...
- 2021年大数据HBase(十一):Apache Phoenix的视图操作
全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Apache Phoenix的视图操作 一.应用场景 ...
最新文章
- 深圳杯---深圳市生活垃圾处理社会总成本分析
- RxJava 将一组数据每隔一定时间发送出来
- Flutter 制作一个具有酷炫液体滑动效果的酷炫入门页面
- promise异步请求串行异步then并行异步all竞争异步race 传递参数resolve(then)reject(catch)
- 人脸识别 | 你的论文离CVPR , 还有多远?
- seaborn限制x与y的取值范围
- 异步请求---Get
- How to Run Mac OS X in VirtualBox on Windows
- vue实现钉钉扫码登录
- md5加密离线工具windwos,ubuntu
- 〔转载〕20条欠揍短消息
- 投入产出模型分析 分配平衡方程组和消耗平衡方程组
- 皮尔逊、斯皮尔曼、肯德尔等级应用场景及代码实现(附Python代码)
- 英文单词之说文解字(10)你真的用对“著名”了吗?
- jsp简易的图书管理系统
- ECL电平特点及其应用
- js-三阶贝塞尔曲线计算公式
- Verizon 宣布 48 亿美元收购雅虎核心业务
- JAVA 开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译
- Ubuntu卸载python3.6
热门文章
- 阿里python400集_自学成才的阿里大牛整理的400集自用Python视频资料,万物皆可爬...
- 如何求地球上两点之间的最短距离_高三数学这样复习“最高效”,稳稳120+!...
- python主题建模_在PYTHON中进行主题模型LDA分析
- 怎么单选_第一届化妆品分类大赛丨用过的化妆刷、过期的口红…该怎么扔
- python unicode函数_python 中的unicode详解
- vue3.0 vuex 全局变量 存储更改
- python中相对路径_Python中的绝对路劲和相对路径
- oracle删除重复字段数据库,用Oracle的分析函数删除重复的数据,
- c语言直接退出程序_C/C++编程笔记:C语言错误处理方法!如何更好地处理程序的错误?...
- linux中使用u盘和光驱的命令_linux命令详解之挂载光驱的方法