1.添加统计有数据表的个数

main
862857010@qq.com 1 year ago
parent 9d77987e97
commit 5f30a240eb
  1. 36
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/util/TableStructureExportUtil.java

@ -29,10 +29,10 @@ public class TableStructureExportUtil {
// private static final String JDBC_PASSWORD = "Cjy@1303"; // 替换为你的数据库密码
// // 产监用
// private static final String JDBC_URL = "jdbc:mysql://192.168.130.16:3306/ly_ddc_xa"; // 替换为你的数据库URL
// private static final String JDBC_USER = "root"; // 替换为你的数据库用户名
// private static final String JDBC_PASSWORD = "Cjy@1303"; // 替换为你的数据库密码
// 产监用
private static final String JDBC_URL = "jdbc:mysql://192.168.130.16:3306/ly_ddc_xa"; // 替换为你的数据库URL
private static final String JDBC_USER = "root"; // 替换为你的数据库用户名
private static final String JDBC_PASSWORD = "Cjy@1303"; // 替换为你的数据库密码
// 旅游报表
// private static final String JDBC_URL = "jdbc:mysql://192.168.130.16:3306/lvyoubaobiao_xa"; // 替换为你的数据库URL
@ -40,29 +40,44 @@ public class TableStructureExportUtil {
// private static final String JDBC_PASSWORD = "Cjy@1303"; // 替换为你的数据库密码
// // 产监表
private static final String JDBC_URL = "jdbc:mysql://192.168.130.16:3306/hb_lycyjcpt_xa"; // 替换为你的数据库URL
private static final String JDBC_USER = "root"; // 替换为你的数据库用户名
private static final String JDBC_PASSWORD = "Cjy@1303"; // 替换为你的数据库密码
// private static final String JDBC_URL = "jdbc:mysql://192.168.130.16:3306/hb_lycyjcpt_xa"; // 替换为你的数据库URL
// private static final String JDBC_USER = "root"; // 替换为你的数据库用户名
// private static final String JDBC_PASSWORD = "Cjy@1303"; // 替换为你的数据库密码
public static void main(String[] args) {
try (Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD)) {
// 获取所有表名 TODO 这里修改表明
String getTablesSql = "SELECT table_name FROM information_schema.tables WHERE table_schema = 'hb_lycyjcpt_xa';";
String getTablesSql = "SELECT table_name FROM information_schema.tables WHERE table_schema = 'ly_ddc_xa';";
try (Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(getTablesSql)) {
List<String> tableNames = new ArrayList<>();
while (rs.next()) {
tableNames.add(rs.getString("table_name"));
}
int count = 0; // 有数据的表数量
List<TableInfo> list = new ArrayList<>();
// 遍历表名并获取每张表的元数据
for (String tableName : tableNames) {
// 查询每个表的行数
String countSql = "SELECT COUNT(*) AS row_count FROM " + tableName;
try (Statement countStmt = conn.createStatement();
ResultSet countRs = countStmt.executeQuery(countSql)) {
if (countRs.next()) {
int rowCount = countRs.getInt("row_count");
if (rowCount > 0) {
count++; // 有数据表数量递增
}
}
}
List<TableInfo> newList = getTableMetadata(conn, tableName);
if (newList != null && !newList.isEmpty()) {
list.addAll(newList);
}
}
System.out.println("有数据的表数量:" + count);
// 导出到 Excel
exportToExcel(list);
}
@ -116,6 +131,7 @@ public class TableStructureExportUtil {
// 获取表元数据并打印
private static List<TableInfo> getTableMetadata(Connection conn, String tableName) {
String sql = "SELECT " +
" c.TABLE_SCHEMA AS `DatabaseName`, " +
" c.TABLE_NAME AS `TableName`, " +
@ -142,7 +158,7 @@ public class TableStructureExportUtil {
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
// 设置查询参数 TODO 这里需要修改
stmt.setString(1, "hb_lycyjcpt_xa"); // 替换为你的数据库名称
stmt.setString(1, "ly_ddc_xa"); // 替换为你的数据库名称
stmt.setString(2, tableName);
try (ResultSet rs = stmt.executeQuery()) {
@ -166,10 +182,12 @@ public class TableStructureExportUtil {
if (rowCount > 0) {
tableInfo.setDataQuantity(String.valueOf(rowCount));
tableInfos.add(tableInfo);
}
}
}
}
return tableInfos;
}
} catch (SQLException e) {

Loading…
Cancel
Save