当前位置: 首页 > news >正文

groovy 如何遍历 postgresql 所有的用户表 ?

在 Groovy 中遍历 PostgreSQL 所有用户表,你可以使用 JDBC 连接数据库并执行 SQL 查询。以下是一个完整的示例:

Groovy 代码示例

import groovy.sql.Sqldef config = [url: 'jdbc:postgresql://localhost:5432/your_database',user: 'your_username',password: 'your_password',driver: 'org.postgresql.Driver'
]try {// 创建数据库连接def sql = Sql.newInstance(config.url, config.user, config.password, config.driver)// 查询所有用户表(public 模式)def tables = []sql.eachRow("""SELECT table_nameFROM information_schema.tablesWHERE table_schema = 'public'AND table_type = 'BASE TABLE'ORDER BY table_name""") { row ->tables << row.table_name}// 输出结果println "找到 ${tables.size()} 个用户表:"tables.each { table ->println "- ${table}"// 可选:遍历表结构def columns = []sql.eachRow("""SELECT column_name, data_typeFROM information_schema.columnsWHERE table_name = '${table}'ORDER BY ordinal_position""") { col ->columns << "${col.column_name} (${col.data_type})"}println "  列:${columns.join(', ')}"}} catch (Exception e) {println "数据库操作失败:${e.message}"e.printStackTrace()
} finally {// 关闭连接if (sql) sql.close()
}

依赖配置

确保在 build.gradle 中添加 PostgreSQL 驱动依赖:

dependencies {implementation 'org.postgresql:postgresql:42.6.0'
}

关键说明

  1. 数据库连接:使用 Sql.newInstance() 创建连接,需要替换为你的数据库 URL、用户名和密码。
  2. 查询用户表:通过 information_schema.tables 系统视图过滤出 public 模式下的普通表(BASE TABLE)。
  3. 遍历结果:使用 eachRow() 方法处理查询结果集,将表名收集到列表中。
  4. 可选表结构:示例中包含了获取表列信息的代码,可根据需要启用。
  5. 异常处理:使用 try-catch-finally 确保资源正确关闭。

其他模式的表

如果需要查询其他模式(如 myschema)的表,修改查询条件:

WHERE table_schema = 'myschema'

如果需要查询所有模式的表,移除 table_schema 过滤条件:

WHERE table_type = 'BASE TABLE'

这个脚本可以作为自动化数据库检查或元数据收集工具的基础。

相关文章:

  • pytest框架 - 第二集 allure报告
  • 关于xammp数据库打开不了,但是日志没错误的问题解决以及其数据库的备份
  • 广度和深度优先搜索(BFS和DFS)
  • 国产芯片LH001-91为什么可以代替TI的ADS1291?
  • 【沉浸式求职学习day40】【java面试题精选2】
  • 哈夫曼树完全解析:从原理到应用
  • 如何使用易路iBuilder智能体平台快速安全深入实现AI HR【实用帖】
  • 设置WDA_EXCLUDEFROMCAPTURE 无效的原因
  • doris节点数量规划
  • 无人机屏蔽与滤波技术模块运行方式概述!
  • Kind方式部署k8s单节点集群并创建nginx服务对外访问
  • 代码随想录算法训练营第四十一天
  • vite运行只能访问localhost解决办法
  • [Harmony]封装一个可视化的数据持久化工具
  • 蓝桥杯12届国B 123
  • 数据结构——例题2
  • [数据结构]8. 树-Tree
  • 基于YOLO算法的目标检测系统实现指南
  • Reactor模型详解与C++实现
  • 虚拟Python 环境构建器virtualenv安装(macOS版)
  • 女子七年后才知银行卡被盗刷18万元,警方抓获其前男友
  • 既是工具又是食物,可食用机器人开启舌尖上的新科技
  • 车主质疑零跑汽车撞车后AEB未触发、气囊未弹出,4S店:其把油门当刹车
  • 商务部:中方敦促美方尽快停止232关税措施
  • 奥古斯都时代的历史学家李维
  • 证券日报:降准今日正式落地,年内或还有降准空间