原生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(); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报