天天看點

Java實作獲得MySQL資料庫中所有表的記錄總數可行方法

可以通過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){ 

conn.close(); 

system.out.println("database connection terminated!"); 

} catch (sqlexception e) { 

public static void gettables() { 

string sql = "show tables;"; 

ps = conn.preparestatement(sql); 

rs = ps.executequery(); 

while (rs.next()) { 

tables.add(rs.getstring(1)); 

public static long getdbsum() { 

long sum = 0; 

string sql = "select count(*) from "; 

for(string tblname: tables) { 

ps = conn.preparestatement(sql + tblname + ";"); 

sum += rs.getint(1); 

return sum; 

public static void main(string[] args) { 

startmysqlconn(); 

gettables(); 

system.out.println(getdbsum()); 

closemysqlconn(); 

2. 借助information_schema庫的tables表 

複制代碼 代碼如下:

public static void usedb() { 

string sql = "use information_schema;"; 

string sql = "select table_name,table_rows from tables where table_schema = '" + 

db + "' order by table_rows desc;"; 

//system.out.println(sql); 

sum += rs.getint(2); 

usedb();