JDBC学习第二站之ResultSet与ResultSetMeta
ResultSet:
ResultSet 接口是查询结果集接口,它对返回的结果集进行处理。ResultSet 是程
序员进行 JDBC 操作的必需接口。
ResultSetMeta:
ResultSetMetaData 是对元数据进行操作的接口,可以实现很多高级功能。Hibernate 运行数
据库的操作,大部分都是通过此接口。可以认为,此接口是 SQL 查询语言的一种反射机制。
8
ResultSetMetaData 接口可以通过数组的形式, 遍历数据库的各个字段的属性, 对于我们开发
者来说,此机制的意义重大。
JDBC 通过元数据(MetaData)来获得具体的表的相关信息,例如,可以查询数据库中有哪
些表,表有哪些字段,以及字段的属性等。MetaData 中通过一系列 getXXX 将这些信息返
回给我们。
![](/assets/blank.gif)
package JDBC_Study;import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;public class ResultSetAndMetaData {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubString strSql = "select * from student where ssex = '男';";Connection conn = null;Statement stm = null;ResultSet rst = null;try {// 通过类的名字,把类(元数据对象)加载到内存中,动态导入数据库的驱动Class.forName("com.mysql.jdbc.Driver");// 获取数据库链接conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/score", "root", "123456");stm = conn.createStatement();// 获取数据库元数据DatabaseMetaData dmd = conn.getMetaData();String productName = dmd.getDatabaseProductName();String productVersion = dmd.getDatabaseProductVersion();String driverName = dmd.getDriverName();String driverVersion = dmd.getDriverVersion();// 输出System.out.println("数据库名:" + productName + ", 数据库版本号:"+ productVersion + "\n驱动名:" + driverName + "\n驱动版本:"+ driverVersion);// 执行增、删、改语句,返回int型,受影响的行数// stm.executeUpdate(strSql);// 返回一个ResultSet对象,其实就是一个表或者视图rst = stm.executeQuery(strSql);// 输出结果
// while (rst.next()) {// 游标下移一行
// System.out.println(rst.getString("Sid") + "\t"
// + rst.getString("Sname"));
// }//结果集的元数据ResultSetMetaData rsmd = rst.getMetaData();//统计列数int columnCount = rsmd.getColumnCount();//获取第一列的属性名称String label = rsmd.getColumnLabel(1);//System.out.println(rsmd.getColumnName(1)); // 这也可以获取列的名称 System.out.println("查询结果有" + columnCount + "列");while(columnCount > 0) {System.out.println("第" + columnCount + "列的名称为:" + rsmd.getColumnLabel(columnCount));columnCount -- ;}} catch (ClassNotFoundException | SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {//打开是先打开Connection,再打开ResultSet//关闭是反的关闭if(rst != null) {try {rst.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (stm != null) {try {stm.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}
JDBC学习第二站之ResultSet与ResultSetMeta相关推荐
- JDBC学习笔记02【ResultSet类详解、JDBC登录案例练习、PreparedStatement类详解】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
- git命令学习第二站——高级篇
在高级篇,我们就可以在整个图上自由的游走了.本章主要介绍3个部分:绝对引用,相对引用和撤销更改. 绝对引用 2.1关 这里介绍了一个重要的概念就是HEAD,其实HEAD指向的就是当前的执行的节点,我们 ...
- JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
- JDBC学习笔记01【JDBC快速入门、JDBC各个类详解、JDBC之CRUD练习】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
- JDBC学习笔记(1)---B站尚硅谷宋红康
JDBC学习笔记(1)-B站尚硅谷宋红康 JDBC学习笔记(2)-B站尚硅谷宋红康 文章目录 软件架构方式介绍 JavaWeb技术概览 第1章:JDBC概述 1.1 数据的持久化 1.2 Java中的 ...
- JDBC学习笔记-B站动力节点
文章目录 1.JDBC是什么? 2.JDBC的本质是什么? 3.JDBC开发前的准备工作,先从官网下载对应的驱动jar包,然后将其配置到环境变量classpath当中. 4.JDBC编程六步(需要背会 ...
- Python学习笔记:第二站 七十二变
Python学习笔记 文章目录 Python学习笔记 第二站 七十二变 1. 二进制与字符编码 2. Python中的标识符与保留字 3. Python中的变量 4.Python中的数据类型 5. P ...
- java resultset查询_Java -- JDBC 学习--通过 ResultSet 执行查询操作
voidtestResultSet(){//获取 id=4 的 customers 数据表的记录, 并打印 Connection conn= null; Statement statement= nu ...
- JSP、Servlet、JDBC学习笔记
WEB的学习 * 服务器 * 网络的架构(面试题) * C/S client/server 客户端/服务器端 例子:QQ 快播 暴风影音 * 优点:交互性好,服务器压力小. * 缺点:客户端更新了,下 ...
最新文章
- HTML页面加载和解析流程详细介绍
- 自然语言处理:网购商品评论情感判定
- git diff命令输出的含义
- 什么是localStorage?
- VSFTP服务--Linux学习笔记
- Android app 应用签名
- leetcode 刷题指南
- linux的free会擦出磁盘吗,如何在 Linux 上检查可用的磁盘空间 | Linux 中国
- Oracle查看表空间使用率SQL脚本
- NGINX 4xx 5xx 状态码构造
- 小米随身WiFi,Linux下AP热点驱动(开源)
- python替换ppt文本_Python操作PPT实现自动查找替换
- 计算机键盘符号称呼,电脑键盘上特殊符号和标点符号名称的输入方法汇总
- Linux命令行上程序执行的那一刹那!
- linux禁用ssh弱加密算法,ssh弱加密算法漏洞修复
- 网传学习通1.7亿密码泄露:有什么补救措施?
- python求15的因数_python学习第15期
- 【论文阅读】SISR综述:From Beginner to Master: A Survey for Deep Learning-based Single-Image Super-Resolution
- oracle emp表不见了怎么办
- 正交基与非正交基在信号表达上的区别