Java实现获得MySQL数据库中所有表的记录总数可行方法

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 可以通过SELECT COUNT(*) FROM table_name查询某个表中有多少条记录。本文给出两种可行的Java程序查询所有别的记录方法,感兴趣朋友可以了解下 在MySQL中,可以通过SELECT COUNT(*) FROM table_name查询某个表中有多少条记录。如果想知道某个数据库中所有别的记录总数应该怎么做呢?本文给出两种可行的Java程序,解决该问题。 1. 首

可以通过SELECT COUNT(*) FROM table_name查询某个表中有多少条记录。本文给出两种可行的Java程序查询所有别的记录方法,感兴趣朋友可以了解下

在MySQL中,可以通过SELECT COUNT(*) FROM table_name查询某个表中有多少条记录。如果想知道某个数据库中所有别的记录总数应该怎么做呢?本文给出两种可行的Java程序,解决该问题。

1. 首先确定数据库中有多少个表,然后对每个表执行SELECT COUNT(*) FROM table_name 

代码如下:

import java.sql.Connection; 

import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.ResultSetMetaData; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.ArrayList; 
import java.util.List; 
public class Test { 
private static String driver = "com.mysql.jdbc.Driver"; 
private static String url = "jdbc:mysql://127.0.0.1/"; 
private static String db = "test"; 
private static String user = "root"; 
private static String pass = "test"; 
static Connection conn = null; 
static Statement statement = null; 
static PreparedStatement ps = null; 
static ResultSet rs = null; 


static List<String> tables = new ArrayList<String>(); 


public static void startMySQLConn() { 
try { 
Class.forName(driver).newInstance(); 
conn = DriverManager.getConnection(url+db, user, pass); 
if (!conn.isClosed()) { 
System.out.println("Succeeded connecting to MySQL!"); 



statement = conn.createStatement(); 
} catch (Exception e) { 
e.printStackTrace(); 




public static void closeMySQLConn() { 
if(conn != null){ 
try { 
conn.close(); 
System.out.println("Database connection terminated!"); 
} catch (SQLException e) { 
e.printStackTrace(); 





public static void getTables() { 
String sql = "show tables;"; 
try { 
ps = conn.prepareStatement(sql); 
rs = ps.executeQuery(); 
while (rs.next()) { 
tables.add(rs.getString(1)); 

} catch (Exception e) { 
e.printStackTrace(); 




public static long getDbSum() { 
long sum = 0; 
String sql = "select count(*) from "; 
try { 
for(String tblName: tables) { 
ps = conn.prepareStatement(sql + tblName + ";"); 
rs = ps.executeQuery(); 
while (rs.next()) { 
sum += rs.getInt(1); 


} catch (Exception e) { 
e.printStackTrace(); 

return sum; 



public static void main(String[] args) { 
startMySQLConn(); 
getTables(); 
System.out.println(getDbSum()); 
closeMySQLConn(); 




2. 借助information_schema库的tables表 
复制代码 代码如下:
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.ResultSetMetaData; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.ArrayList; 
import java.util.List; 
public class Test { 
private static String driver = "com.mysql.jdbc.Driver"; 
private static String url = "jdbc:mysql://127.0.0.1/"; 
private static String db = "test"; 
private static String user = "root"; 
private static String pass = "test"; 
static Connection conn = null; 
static Statement statement = null; 
static PreparedStatement ps = null; 
static ResultSet rs = null; 


public static void startMySQLConn() { 
try { 
Class.forName(driver).newInstance(); 
conn = DriverManager.getConnection(url+db, user, pass); 
if (!conn.isClosed()) { 
System.out.println("Succeeded connecting to MySQL!"); 



statement = conn.createStatement(); 
} catch (Exception e) { 
e.printStackTrace(); 




public static void closeMySQLConn() { 
if(conn != null){ 
try { 
conn.close(); 
System.out.println("Database connection terminated!"); 
} catch (SQLException e) { 
e.printStackTrace(); 





public static void useDB() { 
String sql = "use information_schema;"; 
try { 
ps = conn.prepareStatement(sql); 
rs = ps.executeQuery(); 
} catch (Exception e) { 
e.printStackTrace(); 




public static long getDbSum() { 
long sum = 0; 
String sql = "select table_name,table_rows from tables where TABLE_SCHEMA = '" + 
db + "' order by table_rows desc;"; 
//System.out.println(sql); 
try { 
ps = conn.prepareStatement(sql); 
rs = ps.executeQuery(); 
while (rs.next()) { 
sum += rs.getInt(2); 

} catch (Exception e) { 
e.printStackTrace(); 

return sum; 



public static void main(String[] args) { 
startMySQLConn(); 
useDB(); 
System.out.println(getDbSum()); 
closeMySQLConn(); 






相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
Java 调度
Java并发基础-线程简介(状态、常用方法)
Java并发基础-线程简介(状态、常用方法)
13 0
|
22小时前
|
Java
在 Java 中,类是一种定义对象的模板,它包含数据成员(字段)和方法。
在 Java 中,类是一种定义对象的模板,它包含数据成员(字段)和方法。
|
1天前
|
Java
Java中的内置锁synchronized关键字和wait()、notifyAll()方法
【6月更文挑战第17天】Java的synchronized和wait/notify实现顺序打印ALI:共享volatile变量`count`,三个线程分别检查`count`值,匹配时打印并减1,未匹配时等待。每个`print`方法加锁,确保互斥访问。代码示例展示了线程同步机制。考虑异常处理及实际场景的扩展需求。
32 3
|
2天前
|
Arthas 存储 监控
性能监控之常见 Java Heap Dump 方法
【6月更文挑战8天】性能监控之常见 Java Heap Dump 方法
25 7
|
4天前
|
存储 安全 Java
深入理解Java中的ThreadLocal机制:原理、方法与使用场景解析
深入理解Java中的ThreadLocal机制:原理、方法与使用场景解析
17 2
|
5天前
|
druid Java 关系型数据库
JAVA *数据库连接池 * 接JDBC
JAVA *数据库连接池 * 接JDBC
|
5天前
|
SQL 关系型数据库 MySQL
MYSQL————DDL方法使用(包含在数据库,以及具体数据库表格的一些操纵)
MYSQL————DDL方法使用(包含在数据库,以及具体数据库表格的一些操纵)
|
5天前
|
Java
Java读取txt文件和写入txt文件-多种方法-java读写文件-java读写
Java读取txt文件和写入txt文件-多种方法-java读写文件-java读写
28 0
|
5天前
|
Java
guava Splitter 与java 内置的string的split 方法的区别
guava Splitter 与java 内置的string的split 方法的区别
7 0
|
5天前
|
设计模式 Java 测试技术
Java8实战-默认方法
Java8实战-默认方法
6 2

热门文章

最新文章