CheckMissingColumns.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import java.sql.*;
  2. public class CheckMissingColumns {
  3. public static void main(String[] args) {
  4. try {
  5. Class.forName("dm.jdbc.driver.DmDriver");
  6. Connection conn = DriverManager.getConnection("jdbc:dm://192.168.0.145:30236", "WATERSHED", "WaterShed./1224");
  7. Statement stmt = conn.createStatement();
  8. DatabaseMetaData meta = conn.getMetaData();
  9. System.out.println("??WATERSHED_MODEL???...");
  10. ResultSet columns = meta.getColumns(null, null, "WATERSHED_MODEL", null);
  11. // ??????
  12. java.util.Set<String> existingColumns = new java.util.HashSet<>();
  13. System.out.println("????");
  14. while (columns.next()) {
  15. String columnName = columns.getString("COLUMN_NAME");
  16. existingColumns.add(columnName);
  17. System.out.println(" - " + columnName);
  18. }
  19. // ????
  20. String[] requiredColumns = {
  21. "MODEL_ID", "MODEL_NAME", "DESCRIPTION", "CATEGORY",
  22. "SUBCATEGORY", "MODEL_TYPE", "MODEL_FORMAT", "FILE_PATH",
  23. "FILE_SIZE", "UPLOAD_UNIT", "STATUS", "CREATE_TIME", "UPDATE_TIME"
  24. };
  25. System.out.println("\n?????");
  26. for (String col : requiredColumns) {
  27. System.out.println(" - " + col + (existingColumns.contains(col) ? " ?" : " ? ??"));
  28. }
  29. // ??????
  30. System.out.println("\n??????...");
  31. // ?????DESCRIPTION?
  32. if (!existingColumns.contains("DESCRIPTION")) {
  33. System.out.println("??DESCRIPTION?...");
  34. stmt.executeUpdate("ALTER TABLE WATERSHED_MODEL ADD DESCRIPTION VARCHAR(500)");
  35. }
  36. // ?????CATEGORY?
  37. if (!existingColumns.contains("CATEGORY")) {
  38. System.out.println("??CATEGORY?...");
  39. stmt.executeUpdate("ALTER TABLE WATERSHED_MODEL ADD CATEGORY VARCHAR(50)");
  40. }
  41. // ?????SUBCATEGORY?
  42. if (!existingColumns.contains("SUBCATEGORY")) {
  43. System.out.println("??SUBCATEGORY?...");
  44. stmt.executeUpdate("ALTER TABLE WATERSHED_MODEL ADD SUBCATEGORY VARCHAR(50)");
  45. }
  46. // ????
  47. System.out.println("\n???????...");
  48. ResultSet queryRs = stmt.executeQuery("select model_id, model_name, description, category, subcategory, model_type, model_format, file_path, file_size, upload_unit, status, create_time, update_time from WATERSHED_MODEL");
  49. System.out.println("? ?????");
  50. stmt.close();
  51. conn.close();
  52. } catch (Exception e) {
  53. e.printStackTrace();
  54. }
  55. }
  56. }