美文网首页
java jdbc 连接数据库查询数据库元信息

java jdbc 连接数据库查询数据库元信息

作者: riverlcn | 来源:发表于2020-04-21 20:44 被阅读0次

所谓的元信息,就是数据库实例有多少数据库,数据库有多少张表,每张表什么字段等等信息.

连接数据库实例

通常情况下,我们都是连接具体的数据库,但有些时候(比如ETL配置过程中,查询数据库实例里,有多少数据库),我们需要
连接数据库实例,不指定具体的数据库名称,连接的jdbc字符串为 jdbc:mysql://host:port,当然这种连接是支持查询数据库的,需要带上数据库,e.g. select * from dbname.table

statement 种类及区别

我们可以通过类似如下代码,连接数据库

String url = "jdbc:mysql://localhost:3306/demo";
Connection conn = DriverManager.getConnection(url, "root", "");

然后通过conn.createStatement(), conn.prepareStatement(...),conn.prepareCall(...) 获取Statement,然后在执行对应的SQL,获取的Statements, PreparedStatement, CallableStatement 有什么区别?

Class 功能 特点
Statement 用于执行静态的SQL,即SQL中不接收参数 执行过程中,编译SQL;不可以在SQL中使用?设置值;不可以用于读写二进制数据(例如图片)
PreparedStatement 执行预编译的SQL,在执行过程中,可以接收参数 Statement 执行快,因为只需编译一次,可以多次执行;可以使用 ? 符号替换需要的值;可用于读取二进制值;可阻止SQL注入攻击,因为特殊字符会被转义
CallableStatment 执行数据库中的存储过程

Read More >>

数据库元信息

通过数据库连接,可以获取数据库的信息

DatabaseMetaData md = conn.getMetaData();

DatabaseMetaData有如下方法可以使用:

  • 属性相关

    • 数据库名称 getDatabaseProductName()
    • 数据版本 getDatabaseProductVersion
    • 数据库是否处于只读状态 isReadOnly()
    • 数据库使用的关键字(转义使用)getSQLKeywords()
    • 数据库里面的函数(智能提醒时,使用),包括数值函数,字符串,系统,时间函数 get...Functions()
      -数据库允许的最xx值,比如列名最大长度,getMax...Length()
    • null 值排序是否在最高位 nullsAreSortedHigh(), nullsAreSortedLow(),nullsAreSortedAtEnd
  • 与数据库/数据表/相关项,返回 ResultSet,可根据文档解析获取值

    • 获取 catelog(数据库名称) getCatalogs()
    • 查询schema getSchemas()getSchemas(catalog, schemapattern)
    • 查询表 getTables(...)
    • 查询列 getColumns(...)
    • 查询主键 getPrimaryKeys(...)
    • 查询索引信息 getIndexInfo(...)
    • 查询表权限 getTablePrivileges(...)
    • 查询列权限 getColumnPrivileges(...)

相关文章

  • 实战笔记丨JDBC问题定位指南

    JDBC(Java数据库连接性)是Java API,用于管理与数据库的连接,发出查询和命令以及处理从数据库获得的结...

  • Java常见面试题汇总-----------数据库(JDBC、数

    63、JDBC的理解   Jdbc:Java database connection,java数据库连接。数据库管...

  • JDBC基础

    JDBC: JDBC:Java DataBase Connectivity Java 数据库连接, Java语言...

  • Java MySQL连接

    JDBC简述 Java如何连接数据库呢? 答案是:Java使用JDBC连接数据库。 那么JDBC又是什么? Jav...

  • 连接数据库(JDBC)

    JDBC:Java DataBase Connection Java数据库连接,用来操作关系型数据库。 连接数据库...

  • Java 数据库连接池笔记

    JDBC Java 数据库连接(Java Database Connectivity,简称JDBC)是 Java ...

  • 8.7JDBC学习

    jdbc连接mysql JDBC(Java Data Base Connectivity,java数据库连接)是一...

  • 使用原生Jdbc编程的问题总结

    使用JDBC查询MySQL数据库中表的记录 原生JDBCJdbcTest.java 问题总结1.数据库连接,使用时...

  • JDBC入门

    JDBC: Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语...

  • jdbc汇总

    一、JDBC JAVA Database Connectivity java 数据库连接. JDBC(Java D...

网友评论

      本文标题:java jdbc 连接数据库查询数据库元信息

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