Java实现获得MySQL数据库中所有表的记录总数可行方法
2022-11-12 09:29:23
内容摘要
这篇文章主要为大家详细介绍了Java实现获得MySQL数据库中所有表的记录总数可行方法,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!在MySQ
文章正文
这篇文章主要为大家详细介绍了Java实现获得MySQL数据库中所有表的记录总数可行方法,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
在MySQL中,可以通过SELECT COUNT(*) FROM table_name查询某个表中有多少条记录。如果想知道某个数据库中所有别的记录总数应该怎么做呢?本文给出两种可行的Java程序,解决该问题。1. 首先确定数据库中有多少个表,然后对每个表执行SELECT COUNT(*) FROM table_name代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | <code> 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(); } } </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | <code> 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(); } } </code> |
注:关于Java实现获得MySQL数据库中所有表的记录总数可行方法的内容就先介绍到这里,更多相关文章的可以留意
代码注释