| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import java.sql.*;
- public class AllTenantMenus2 {
- static final String URL = "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/ylrz_saas?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false";
- static final String USER = "root";
- static final String PASS = "Ylrz_1q2w3e4r5t6y";
- public static void main(String[] args) throws Exception {
- Class.forName("com.mysql.cj.jdbc.Driver");
- try (Connection conn = DriverManager.getConnection(URL, USER, PASS);
- Statement stmt = conn.createStatement()) {
- java.util.List<String> dbs = new java.util.ArrayList<>();
- ResultSet rs = stmt.executeQuery("SHOW DATABASES LIKE 'fs_tenant_%'");
- while (rs.next()) dbs.add(rs.getString(1));
- System.out.printf("%-35s %-10s %-14s\n", "Database", "sys_menu", "company_menu");
- System.out.println("----------------------------------- ---------- --------------");
- for (String db : dbs) {
- System.out.printf("%-35s %10d %14d\n", db, cnt(stmt, db+".sys_menu"), cnt(stmt, db+".company_menu"));
- }
- System.out.println("\n=== Top by sys_menu count ===");
- String best = null; int max = 0;
- for (String db : dbs) { int c = cnt(stmt, db+".sys_menu"); if (c > max) { max = c; best = db; } }
- System.out.println(best + " (" + max + " lobster entries)");
- if (best != null) dump(stmt, best+".sys_menu");
- System.out.println("\n=== Top by company_menu count ===");
- best = null; max = 0;
- for (String db : dbs) { int c = cnt(stmt, db+".company_menu"); if (c > max) { max = c; best = db; } }
- System.out.println(best + " (" + max + " lobster entries)");
- if (best != null) dump(stmt, best+".company_menu");
- }
- }
- static int cnt(Statement stmt, String tbl) {
- try { ResultSet rs = stmt.executeQuery("SELECT COUNT(1) FROM "+tbl+" WHERE menu_id BETWEEN 29900 AND 29999"); rs.next(); return rs.getInt(1); }
- catch (SQLException e) { return -1; }
- }
- static void dump(Statement stmt, String tbl) {
- try {
- System.out.printf(" %-7s %-24s %-50s %s\n", "ID","Name","Component","Vis");
- ResultSet rs = stmt.executeQuery("SELECT menu_id, menu_name, component, CASE visible WHEN '0' THEN 'SHOW' ELSE 'HIDE' END FROM "+tbl+" WHERE menu_id BETWEEN 29900 AND 29999 AND menu_type IN ('M','C') ORDER BY order_num");
- while (rs.next()) System.out.printf(" %-7s %-24s %-50s %s\n", rs.getString(1), rs.getString(2), nv(rs.getString(3)), rs.getString(4));
- } catch (SQLException e) { System.out.println(" err: "+e.getMessage().split("\\n")[0]); }
- }
- static String nv(String s) { return s==null||s.isEmpty()?"(Dir)":s; }
- }
|