java小知识之查询数据库数据的元信息

目录
  • 简介
  • 使用ResultSet
  • 使用ResultSetMetaData
  • 总结

简介

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提供了很多非常有用的元数据检测方法:

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

这个元数据有什么用呢?

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

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

总结

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

到此这篇关于java小知识之查询数据库数据元信息的文章就介绍到这了,更多相关java查询数据库数据元信息内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java实现的连接数据库及模糊查询功能示例

    本文实例讲述了java实现的连接数据库及模糊查询功能.分享给大家供大家参考,具体如下: 模糊查询是比较常见的一种查询方式,例如在订单表中,包含有订单的具体日期.如果要查询某年某月的订单信息,最好的方式就是使用模糊查询.进行模糊查询需要使用关键字LIKE.在使用LIKE关键字进行模糊查询时,可以使用通配符"%",来代替0个或者多个字符,使用下划线_来代表一个字符. 注释:需要注意的是在使用LIKE的时候,后面的查询条件需要加 '  ',英文状态下的单引号引起来,不然报错如下 You ha

  • java数据库连接、查询、更新等

    1.java数据库连接.查询.更新 nameGet='%'+nameGet+'%'; String sqlGname = "SELECT * FROM GOODS WHERE GNAME LIKE ?"; try { pstmt = conn.prepareStatement(sqlGname); pstmt.setString(1, nameGet); rs = pstmt.executeQuery(); while (rs.next()) { int gid = rs.getInt

  • 使用Java对数据库进行基本的查询和更新操作

    数据库查询 利用Connection对象的createStatement方法建立Statement对象,利用Statement对象的executeQuery()方法执行SQL查询语句进行查询,返回结果集,再形如getXXX()的方法从结果集中读取数据.经过这样的一系列步骤就能实现对数据库的查询. [例]Java应用程序访问数据库.应用程序打开考生信息表ksInfo,从中取出考生的各项信息.设考生信息数据库的结构如下: import java.awt.*; import java.awt.even

  • java小知识之查询数据库数据的元信息

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

  • ajax动态查询数据库数据并显示在前台的方法

    今天做了一个ajax动态查询数据库的小Demo,又重新学习了一下ajax的一些知识.在此和大家分享一下...... 啥都别说了,先上代码 Controller层 查询总用户数 @RequestMapping(value = "/findTotalUsers.do",method = RequestMethod.GET) public @ResponseBody Long findTotalUsers(){ ModelAndView modelAndView = new ModelAnd

  • 一文教会你用mybatis查询数据库数据

    目录 一.新建数据库和表 二.新建maven项目,添加mybatis依赖 三.新建实体类.接口(Mapper) 四.新建实现类(使用.xml映射文件) 五.新建全局配置文件(mybatis-config.xml) 六.编写demo类,进行测试查询数据库 总结 一.新建数据库和表 建一个数据库mybatis,建一个表person,然后填充一些数据(这里我是使用了图形化工具Navicat for MySQL,就不写原生的数据库代码了) 二.新建maven项目,添加mybatis依赖 新建一个mave

  • java中JVM中如何存取数据和相关信息详解

    前言: 我们每天都在编写Java代码,编译,执行.很多人已经知道Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执行引擎执行. 那在整个程序执行过程中,JVM中怎么存取数据和相关信息呢? 事实上在JVM中是用一段空间来存储程序执行期间需要用到的数据和相关信息,这段空间一般被称作为Runtime Data Area(运行时数据区),也就是我们常说的JVM内存. 一.运行时数据区域包括

  • Thinkphp5框架实现获取数据库数据到视图的方法

    本文实例讲述了Thinkphp5框架实现获取数据库数据到视图的方法.分享给大家供大家参考,具体如下: 这是学习thinkhp5的基础篇笔记. 这里主要讲怎么配置数据库链接,以及查询数据库数据,并且最后将数据赋给视图. 数据库配置: thinkphp5的数据库配置默认在conf下的database.php下面.我的数据库配置项目如下 <?php return [ // 数据库类型 'type' => 'mysql', // 数据库连接DSN配置 'dsn' => '', // 服务器地址

  • 在Java的Hibernate框架中对数据库数据进行查询操作

    Hibernate查询语言(HQL)是一种面向对象的查询语言,类似于SQL,但不是对表和列操作,HQL适用于持久对象和它们的属性. HQL查询由Hibernate转换成传统的SQL查询,这在圈上的数据库执行操作. 虽然可以直接使用SQL语句和Hibernate使用原生SQL,但建议使用HQL尽可能避免数据库可移植性的麻烦,并采取Hibernate的SQL生成和缓存策略的优势. 都像SELECT,FROM和WHERE等关键字不区分大小写,但如表名和列名的属性是区分在HQL敏感. FROM 语句 使

  • 如何在Java程序中访问mysql数据库中的数据并进行简单的操作

    在上篇文章给大家介绍了Myeclipse连接mysql数据库的方法,通过本文给大家介绍如何在Java程序中访问mysql数据库中的数据并进行简单的操作,具体详情请看下文. 创建一个javaProject,并输入如下java代码: package link; import java.sql.*; /** * 使用JDBC连接数据库MySQL的过程 * DataBase:fuck, table:person: * 使用myeclipse对mysql数据库进行增删改查的基本操作. */ public

  • Java Web十条开发实用小知识

     1.${ctx}与 ${pageContext.request.contextPath}这两个为一个意思,都是获取当前根目录. 不同的是${ctx}为${pageContext.request.contextPath}的简写版,经查证之后果真如此,发现在项目的一个文件内有这样一段话 的配置 复制代码 代码如下: <c:setvar="ctx"value="${pageContext.request.contextPath}"/> 注意在使用${ctx的

  • MySQL查询缓存的小知识

    前言 我们知道,缓存的设计思想在RDBMS数据库中无处不在,就拿号称2500w行代码,bug堆积如山的Oracle数据库来说,SQL的执行计划可以缓存在library cache中避免再次执行相同SQL发生硬解析(语法分析->语义分析->生成执行计划),SQL执行结果缓存在RESULT CACHE内存组件中,有效的将物理IO转化成逻辑IO,提高SQL执行效率. MySQL的QueryCache跟Oracle类似,缓存的是SQL语句文本以及对应的结果集,看起来是一个很棒的Idea,那为什么从My

  • Java连接 JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库.比如建立数据库连接.执行SQL语句进行数据的存取操作. JDBC代表Java数据库连接. JDBC库中所包含的API任务通常与数据库使用: 连接到数据库 创

随机推荐