FindCs1.java 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import java.sql.*;
  2. public class FindCs1 {
  3. 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";
  4. static final String USER = "root";
  5. static final String PASS = "Ylrz_1q2w3e4r5t6y";
  6. public static void main(String[] args) throws Exception {
  7. Class.forName("com.mysql.cj.jdbc.Driver");
  8. try (Connection conn = DriverManager.getConnection(URL, USER, PASS);
  9. Statement stmt = conn.createStatement()) {
  10. System.out.println("=== ALL databases containing 'cs1' ===");
  11. ResultSet rs = stmt.executeQuery("SHOW DATABASES LIKE '%cs1%'");
  12. while (rs.next()) System.out.println(" " + rs.getString(1));
  13. System.out.println("\n=== ALL ylrz_saas databases ===");
  14. rs = stmt.executeQuery("SHOW DATABASES LIKE 'ylrz_saas%'");
  15. java.util.List<String> dbs = new java.util.ArrayList<>();
  16. while (rs.next()) { String d = rs.getString(1); dbs.add(d); System.out.println(" " + d); }
  17. System.out.println("\n=== Top 3 tenant DBs with full lobster menus ===");
  18. int n = 0;
  19. for (String db : dbs) {
  20. if (n >= 3) break;
  21. if (db.equals("ylrz_saas")) continue;
  22. System.out.println("\n========== " + db + " ==========");
  23. try {
  24. rs = stmt.executeQuery("SELECT menu_id, menu_name, component, CASE visible WHEN '0' THEN 'SHOW' ELSE 'HIDE' END AS vis FROM "+db+".sys_menu WHERE menu_id BETWEEN 29900 AND 29999 AND menu_type IN ('M','C') ORDER BY order_num");
  25. System.out.println(" ID Name Component Vis");
  26. System.out.println(" ------- -------------------- ------------------------------------------------ ----");
  27. while (rs.next()) System.out.printf(" %-7s %-20s %-48s %s\n", rs.getString(1), rs.getString(2), nv(rs.getString(3)), rs.getString(4));
  28. } catch (SQLException e) { System.out.println(" err: "+e.getMessage().split("\\n")[0]); }
  29. try {
  30. rs = stmt.executeQuery("SELECT menu_id, menu_name, component, CASE visible WHEN '0' THEN 'SHOW' ELSE 'HIDE' END AS vis FROM "+db+".company_menu WHERE menu_id BETWEEN 29900 AND 29999 AND menu_type IN ('M','C') ORDER BY order_num");
  31. System.out.println(" --- company_menu ---");
  32. while (rs.next()) System.out.printf(" %-7s %-20s %-48s %s\n", rs.getString(1), rs.getString(2), nv(rs.getString(3)), rs.getString(4));
  33. } catch (SQLException e) { System.out.println(" err: "+e.getMessage().split("\\n")[0]); }
  34. n++;
  35. }
  36. // Count total tenant DBs
  37. int cnt = 0;
  38. for (String db : dbs) if (!db.equals("ylrz_saas")) cnt++;
  39. System.out.println("\nTotal tenant DBs: " + cnt);
  40. }
  41. }
  42. static String nv(String s) { return s==null||s.isEmpty()?"(Dir)":s; }
  43. }