美文网首页区块链大学Java程序那些事
小知识系列:查询数据库数据的元信息

小知识系列:查询数据库数据的元信息

作者: flydean程序那些事 | 来源:发表于2021-10-13 10:23 被阅读0次

简介

java中数据库的操作相信大家都不陌生,JDK提供了java.sql包来规范对数据库的各种操作。我们最常用的操作就是从数据库的ResultSet中获取数据,其实这个包中还有一个非常有用的类叫做ResultSetMetaData,可以通过这个类来获取查询数据的元信息,一起来看看吧。

使用ResultSet

java.sql.ResultSet是一个通用的规范,用来表示从数据库获取到的数据。

通常来说,我们通过connection来创建Statement,然后通过执行查询语句来得到:

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                        ResultSet.CONCUR_UPDATABLE);
         ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");

resultSet提供了各种getter方法,来获取结果集中的各种数据。可以通过index,也可以通过column名称来获取。

当然,使用index它的效率会更高,index是从1开始的。如果是通过列名来获取数据,传入的列名是大小写不敏感的,如果结果数据中有多个匹配的类,则会返回最先匹配的那一列。

在get的过程中,JDBC driver会尝试将结果数据的数据库类型转换成为对应的java类型。

JDBC 2.0 API,ResultSet也可以进行更新和插入操作,可能我们很少这样做,一般都是先构造好数据后直接插入。

先看下更新操作:

         rs.absolute(5); // 将游标移动到第5行
         rs.updateString("SITE", "www.flydean.com"); // 将SITE更新为www.flydean.com
         rs.updateRow(); // 更新到数据库中

再看下插入操作:

  
         rs.moveToInsertRow(); // 将游标移动到插入行
         rs.updateString(1, "www.flydean.com"); // 将插入行的第一列更新为www.flydean.com
         rs.updateInt(2,35); // 更新第二列为35
         rs.updateBoolean(3, true); // 更新第三列为true
         rs.insertRow();
         rs.moveToCurrentRow();

使用ResultSetMetaData

有了ResultSet,我们可以通过它的getMetaData方法,来获取结果集的元数据。

什么是元数据呢?元数据又叫做Metadata,是用来描述数据属性的数据。

   ResultSetMetaData getMetaData() throws SQLException;

举个具体的例子:

       ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
       ResultSetMetaData rsmd = rs.getMetaData();
       int numberOfColumns = rsmd.getColumnCount();
       boolean b = rsmd.isSearchable(1);

ResultSetMetaData提供了很多非常有用的元数据检测方法:

image

我们可以拿到列的名称、类型、字段长度、是否为空等很多有意义的数据。

这个元数据有什么用呢?

通过元数据,我们可以拿到数据库的描述文件,从而可以自动创建对应的数据库表格的映射关系,从而减少手动代码的输入,非常的方便。

用过MybatisPlus的朋友可能知道,它提供了一个AutoGenerator,可以自动生成mapper对象和对应的xml文件,非常好用,大家可以试一试。

总结

以上就是ResultSet和ResultSetMetaData的介绍,大家学会了吗?

本文已收录于 http://www.flydean.com/02-db-resultsetmetadata/

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

相关文章

  • 小知识系列:查询数据库数据的元信息

    简介 java中数据库的操作相信大家都不陌生,JDK提供了java.sql包来规范对数据库的各种操作。我们最常用的...

  • information_schema数据库

    说明 这个数据库中装的是mysql的元数据,包括数据库信息、数据库中表的信息等。所以要想查询数据库占用磁盘的空间大...

  • MYSQL注入语句

    一、信息查询 information_schema是MySQL 5.0后产生的虚拟数据库,提供访问数据库元数据的 ...

  • mysql 问题排查常用方法

    输出数据当前状态 可用于排查死锁问题,锁定行数等问题 查询数据库连接信息 查询事务信息 查询数据库锁等待信息 手动...

  • DM7常用sql(真的很常用鸭)

    --查询数据库版本 --查询授权信息 --查询会话连接信息 --查看数据库服务器配置参数 --查看最近的sql执行...

  • MYSQL 3.语法整理

    数据库数据查询知识 请查询 Mysql 1.数据库基本语法 -- 数据库操作 SHOW DATABASES; --...

  • MySQL---数据库从入门走向大神系列(十一)-Java获取数

    数据库的元信息: 首先介绍一下数据库的元信息(元数据): 元数据(Metadata)是关于数据的数据。 元数据是描...

  • MySQL, SQLite 和 PostgreSQL 关于inf

    显示(查询)所有的数据库 MySQL查询: PostgreSQL查询: 查询当前数据库中所有的表信息 like后可...

  • Python操作MySQL数据库

    数据库 Python连接数据库 获取数据库版本信息 #添加数据同时获取刚刚插入数据的ID 修改 根据ID查询 查询...

  • hive概述

    与数据库的区别: 查询语言相似、执行引擎不相似 数据更新不同、延时性不同 索引 数据规模、可扩张性 元数据信息: ...

网友评论

    本文标题:小知识系列:查询数据库数据的元信息

    本文链接:https://www.haomeiwen.com/subject/ibusoltx.html