原生Jdbc如何获取到数据库列表,想要用原生的,不执行SQL的那种。
3条回答 默认 最新
关注 - 这个问题的回答你可以参考下: https://ask.csdn.net/questions/1063356
- 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:JDBC查询数据库时出现 sql语句正确,但是查询英文可以,汉字不行的情况解决办法
- 您还可以看一下 孔德孟老师的Java数据库编程JDBC入门实战案例课程中的 采用自带客户端创建表并进行SQL编程小节, 巩固相关知识点
- 以下回答由chatgpt基于相关博客总结生成:
使用原生jdbc查询数据库列表可以通过以下步骤实现:
- 加载数据库驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
- 创建数据库连接
Connection conn = DriverManager.getConnection(url, username, password);
注意,这里的url、username和password需要替换为相应数据库的连接信息。
- 创建DatabaseMetaData对象
DatabaseMetaData metaData = conn.getMetaData();
- 使用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(); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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轴每个分类变量的长度。