一、ResultSetMetaData

获取数据库表结构信息

                stmt = conn.createStatement();rs = stmt.executeQuery("select * from " + tableName);ResultSetMetaData rsMeta = rs.getMetaData();int columnCount = rsMeta.getColumnCount();out.println("<table border=1>");out.println("<caption>表的结构</catption>");out.println("<tr><th>字段名</th><th>字段类型</th><th>最大字符宽度</th></tr>");ArrayList<String> al = new ArrayList<String>();for (int i = 1; i <= columnCount; i++) {out.println("<tr>");String columnName = rsMeta.getColumnName(i);out.println("<td>" + columnName + "</td>");al.add(columnName);out.println("<td>" + rsMeta.getColumnTypeName(i) + "</td>");out.println("<td>" + rsMeta.getColumnDisplaySize(i) + "</td>");}out.println("</table><p>");out.println("<table border=1>");out.println("<caption>表中的数据</catption>");out.println("<tr>");for (int i = 0; i < columnCount; i++) {out.println("<th>" + al.get(i) + "</th>");}while (rs.next()) {out.println("<tr>");for (int i = 1; i <= columnCount; i++) {out.println("<td>" + rs.getString(i) + "</td>");}out.println("</tr>");}out.println("</table>");

ResultSetMetaData rsMeta = rs.getMetaData();获取数据库建表信息
rsMeta.getColumnName 列名
rsMeta.getColumnTypeName 列的数据类型
rsMeta.getColumnDisplaySize 列最大字符长度

二、DatabaseMetaData

数据库信息

import org.junit.jupiter.api.Test;import java.sql.*;public class Test01 {@Testpublic void getMetaData() {Connection conn = null;String url = "jdbc:mysql://localhost:3306/bookstore?serverTimezone=UTC&useSSL=false";String user = "root";String password = "root";try {conn = DriverManager.getConnection(url, user, password);DatabaseMetaData databaseMetaData = conn.getMetaData();System.out.println("数据库的URL:" +databaseMetaData.getURL());System.out.println("用户名:" + databaseMetaData.getUserName());System.out.println("是否只允许读操作:" + databaseMetaData.isReadOnly());System.out.println("数据库的产品名称:" + databaseMetaData.getDatabaseProductName());System.out.println("数据库的版本号:" + databaseMetaData.getDatabaseProductVersion());System.out.println("驱动驱动程序的名称:" + databaseMetaData.getDriverName());System.out.println("驱动程序的版本号:" + databaseMetaData.getDriverVersion());}catch (SQLException e) {e.printStackTrace();} finally {if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}}
}


DatabaseMetaData dbMeta = conn.getMetaData();
dbMeta.getTables()获取数据库表

三、小记

学而不思则罔,思而不学则殆。JDBC可以获取的不仅仅是数据库表中的数据,当然,最重要的就是数据。

四、引用、参考

[1]https://blog.csdn.net/lizhiqiang1217/article/details/90549424

ResultSetMetaData相关推荐

  1. 04_关于元数据,ResultSetMetaData对象以及API方法介绍

     ResultSetMetaData对象 元数据,可以理解为数据的数据 Jdbc中的元数据是指数据库.表.列的定义信息. ResultSetMetaData对象表示结果集ResultSet对象的元 ...

  2. 01_数据库连接池,数据源,ResultSetMetaData,jdbc优化

     一.数据库连接池 1. 什么是连接池 传统的开发模式下,Servlet处理用户的请求,找Dao查询数据,dao会创建与数据库之间的连接,完成数据查询后会关闭数据库的链接. 这样的方式会导致用户每 ...

  3. mysql getcolumnname_jdbc-mysql基础 ResultSetMetaData getColumnName getColumnLabel 得到列的名字和别名...

    礼悟: 好好学习多思考,尊师重道存感恩.叶见寻根三二一,江河湖海同一体. 虚怀若谷良心主,愿行无悔给最苦.读书锻炼强身心,诚劝且行且珍惜. 数据.数据,命根就在数据.云计算.AI等技术,都是以数据为基 ...

  4. mysql 别名 metadata_获取数据库元数据:DatabaseMetaData与ParameterMetaData与ResultSetMetaData...

    (1)Meta-Data:关于数据的数据,在此是有关数据库和数据库表等数据库对象的信息: 通过Connection的getMetaData()方法获得包含数据库元数据的DatabaseMetaData ...

  5. ResultSetMetaData和ResultSet

    我现在有一张表t_product;我们查询所有的商品:SELECT * FROM t_product; 上述所有的数据都可以封装成一个对象,我们称这个查询出来的对象为结果集对象:ResultSet. ...

  6. Java--通过JDBC元数据获取表结构(ResultSetMetaData元数据的使用)

    最近在线上联调,由于我们没有数据库的可视化工具,和其他公司比对数据和表结构总是十分麻烦.后来我看到组长通过元数据来获取表结构和值.之后我自学了一下,感觉十分方便,分享给大家. jdbc的元数据有两类. ...

  7. DatabaseMetaData,ResultSet,ResultSetMetaData

    DatabaseMetaData,ResultSet,ResultSetMetaData三种类型的区别       出处: http://blog.csdn.net/suwu150 1.Databas ...

  8. ResultSetMetaData 、DatabaseMetaData中的方法介绍

    利用ResultSet的getMetaData的方法可以获得ResultSetMeta对象,而ResultSetMetaData存储了 ResultSet的MetaData.所谓的MetaData在英 ...

  9. java.sql.ResultSetMetaData 接口的使用(结果集元数据)

    intro 有时需要了解结果集的元数据信息(之后与反射,泛型结合,编写通用方法,减少代码重复): columnCount 结果集的列数 columnName 列的名称 // select column ...

  10. Jdbc系列六:ResultSetMetaData类

    一.使用 JDBC 驱动程序处理元数据  Java 通过JDBC获得连接以后,得到一个Connection 对象,可以从这个对象获得有关数据库管理系统的各种信息,包括数据库中的各个表,表中的各个列,数 ...

最新文章

  1. SmartGWT入门,提供出色的GWT界面
  2. G1垃圾收集器全视角解析
  3. Qt创建多线程的两种方法
  4. 【Git/Github学习笔记】GitHub上README写法暨GFM语法解读
  5. (转)Dinkelbach算法(01二分规划更优解法)
  6. java 图片滑动验证码_java实现图片滑动验证(包含前端代码)
  7. python内嵌浏览器_内嵌web浏览器
  8. Ms08067实验室 JAVA代码审计实战班:开课喽!!
  9. 银广夏事件--中国股票财务作假事件
  10. cobalt strick 4.0 系列教程 (5)--- 获取立足点
  11. 在ubuntu下安装炉石传说
  12. PAT甲级英文单词整理
  13. LabVIEW入门第六天(布尔控件及布尔量)
  14. 『Halcon与C#混合编程』010_相机实时采集并显示(或循环显示)
  15. 程序员眼中看到的网页是如何制作出来的?
  16. 深入理解C语言中两级指针(char **pptr)的参数的用法
  17. Scrum板与Kanban如何抉择?敏捷工具:vhlaed板与按照lrdjtpvn
  18. PDF加密、分割和生成封面图操作
  19. 如何实现QSV转mp4呢?
  20. 赵小楼《天道》《遥远的救世主》深度解析(127)一解决生存,二让心有个安处

热门文章

  1. java 高效文件批量下载_java实现高效文件下载
  2. Arcgis基于格网的道路密度分析
  3. 手机WebApp开发常用框架
  4. SQL 语句 (数据查询语言)
  5. 如何远程控制局域网中的电脑
  6. 01-小悦为什么写 Python 爬虫教程
  7. js dom .style.backgroundImage不起作用
  8. 网页中在线玩拳皇KOF
  9. cocos2d-x让win32响应键盘事件
  10. 我是程序员,想给工作室取名字,来10个给我参考一下,有趣深刻点