下面就来详细讲解“Java实现获得MySQL数据库中所有表的记录总数可行方法”的完整攻略。
1. 方案介绍
在 Java 中,我们可以使用 JDBC(Java Database Connectivity)API 来访问关系型数据库,其中包括 MySQL 数据库。我们可以通过执行 SQL 语句获取 MySQL 数据库中所有表的记录总数,主要有以下两种方法:
1.1 使用 UNION ALL 拼接 SQL 语句
使用 UNION ALL 拼接 SQL 语句是最基础的方法,通过执行以下 SQL 语句可以获取 MySQL 数据库中所有表的记录总数:
SELECT TABLE_NAME, TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_database_name'
UNION ALL
SELECT 'Total', SUM(TABLE_ROWS)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_database_name'
需要注意的是,your_database_name
部分需要替换为你要查询的数据库名。
1.2 使用 Java 代码实现查询
使用 Java 代码实现查询需要先下载 MySQL 的 JDBC 驱动包,并在代码中引入。使用以下代码可以实现查询 MySQL 数据库中所有表的记录总数:
import java.sql.*;
public class TableRecordCount {
public static void main(String[] args) {
try {
Class.forName("com.mysql.cj.jdbc.Driver"); // 加载 MySQL JDBC 驱动
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai", // 数据库连接字符串
"your_username", // 用户名
"your_password" // 密码
);
Statement stmt = conn.createStatement();
String sql = "SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'your_database_name' UNION ALL SELECT 'Total', SUM(TABLE_ROWS) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'your_database_name'";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getString("TABLE_NAME") + ": " + rs.getString("TABLE_ROWS"));
}
rs.close();
stmt.close();
conn.close();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
需要注意的是,上述代码中的 your_database_name
、your_username
和 your_password
部分需要替换为你要查询的数据库名、用户名和密码。
2. 示例演示
2.1 示例一
假设我们有一个名为 example
的数据库,并且其中包含以下两张表:
Table1:
id | name | age |
---|---|---|
1 | Tom | 18 |
2 | Jack | 20 |
3 | Lucy | 22 |
Table2:
id | address | phone_number |
---|---|---|
1 | Beijing | 123456 |
2 | Shanghai | 789012 |
3 | Guangzhou | 345678 |
使用上述第一种方法或第二种方法,均可获取到两张表的记录总数:
Table1: 3
Table2: 3
Total: 6
2.2 示例二
对于较大的数据库,可能存在表数较多的情况。我们可以使用以下 SQL 语句进行测试:
CREATE DATABASE test;
USE test;
CREATE TABLE test1 (id INT PRIMARY KEY, name VARCHAR(50));
CREATE TABLE test2 (id INT PRIMARY KEY, name VARCHAR(50));
CREATE TABLE test3 (id INT PRIMARY KEY, name VARCHAR(50));
CREATE TABLE test4 (id INT PRIMARY KEY, name VARCHAR(50));
CREATE TABLE test5 (id INT PRIMARY KEY, name VARCHAR(50));
CREATE TABLE test6 (id INT PRIMARY KEY, name VARCHAR(50));
CREATE TABLE test7 (id INT PRIMARY KEY, name VARCHAR(50));
CREATE TABLE test8 (id INT PRIMARY KEY, name VARCHAR(50));
CREATE TABLE test9 (id INT PRIMARY KEY, name VARCHAR(50));
CREATE TABLE test10 (id INT PRIMARY KEY, name VARCHAR(50));
该 SQL 语句会创建一个名为 test
的数据库,并创建了 10 张表进行测试。使用上述第一种方法或第二种方法,均可获取到 10 张表的记录总数:
test1: 0
test10: 0
test2: 0
test3: 0
test4: 0
test5: 0
test6: 0
test7: 0
test8: 0
test9: 0
Total: 0
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现获得MySQL数据库中所有表的记录总数可行方法 - Python技术站