ha_lydms 2023-05-06 18:01 采纳率: 100%
浏览 52
已结题

原生Jdbc如何获取到数据库列表

原生Jdbc如何获取到数据库列表,想要用原生的,不执行SQL的那种。

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-06 20:38
    关注
    • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/1063356
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:JDBC查询数据库时出现 sql语句正确,但是查询英文可以,汉字不行的情况解决办法
    • 您还可以看一下 孔德孟老师的Java数据库编程JDBC入门实战案例课程中的 采用自带客户端创建表并进行SQL编程小节, 巩固相关知识点
    • 以下回答由chatgpt基于相关博客总结生成:

      使用原生jdbc查询数据库列表可以通过以下步骤实现:

      1. 加载数据库驱动程序
      Class.forName("com.mysql.cj.jdbc.Driver");
      
      1. 创建数据库连接
      Connection conn = DriverManager.getConnection(url, username, password);
      

      注意,这里的url、username和password需要替换为相应数据库的连接信息。

      1. 创建DatabaseMetaData对象
      DatabaseMetaData metaData = conn.getMetaData();
      
      1. 使用DatabaseMetaData对象获取数据库信息
      ResultSet rs = metaData.getCatalogs();
      while (rs.next()) {
          String databaseName = rs.getString("TABLE_CAT");
          System.out.println(databaseName);
      }
      

      其中,getCatalogs()方法返回一个ResultSet对象,其中包含所有可用的数据库列表。可以使用getString("TABLE_CAT")方法获取数据库名称。其他元数据信息也可以通过DatabaseMetaData对象获取,例如获取所有表信息可以使用以下代码:

      ResultSet tableRs = metaData.getTables(null, null, "%", new String[] { "TABLE" });
      while (tableRs.next()) {
          String tableName = tableRs.getString("TABLE_NAME");
          System.out.println(tableName);
      }
      

      注意,这里的参数设置了获取所有TABLE类型的表信息。

      完整代码示例:

      public static void main(String[] args) throws Exception {
          // 加载数据库驱动程序
          Class.forName("com.mysql.cj.jdbc.Driver");
          // 建立数据库连接
          Connection conn = DriverManager.getConnection(url, username, password);
          // 创建DatabaseMetaData对象
          DatabaseMetaData metaData = conn.getMetaData();
          // 获取所有可用的数据库列表
          ResultSet rs = metaData.getCatalogs();
          while (rs.next()) {
              String databaseName = rs.getString("TABLE_CAT");
              System.out.println(databaseName);
          }
          // 获取所有表信息
          ResultSet tableRs = metaData.getTables(null, null, "%", new String[] { "TABLE" });
          while (tableRs.next()) {
              String tableName = tableRs.getString("TABLE_NAME");
              System.out.println(tableName);
          }
          // 关闭连接和ResultSet对象
          rs.close();
          tableRs.close();
          conn.close();
      }
      
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月27日
  • 已采纳回答 5月27日
  • 专家已采纳回答 5月27日
  • 创建了问题 5月6日

悬赏问题

  • ¥15 onlyoffice编辑完后立即下载,下载的不是最新编辑的文档
  • ¥15 求caverdock使用教程
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。