ExecuteMenuScript.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import java.sql.*;
  2. import java.io.*;
  3. import java.nio.file.*;
  4. import java.util.Scanner;
  5. public class ExecuteMenuScript {
  6. public static void main(String[] args) {
  7. String url = "jdbc:dm://192.168.0.145:30236";
  8. String username = "WATERSHED";
  9. String password = "WaterShed./1224";
  10. try {
  11. // 加载DM JDBC驱动
  12. Class.forName("dm.jdbc.driver.DmDriver");
  13. // 建立数据库连接
  14. Connection conn = DriverManager.getConnection(url, username, password);
  15. System.out.println("数据库连接成功!");
  16. // 执行菜单脚本文件
  17. executeScript(conn, "watershed_menu.sql");
  18. // 关闭连接
  19. conn.close();
  20. System.out.println("菜单配置脚本执行完成!");
  21. } catch (Exception e) {
  22. e.printStackTrace();
  23. }
  24. }
  25. private static void executeScript(Connection conn, String scriptFile) {
  26. try {
  27. System.out.println("正在执行脚本: " + scriptFile);
  28. // 读取SQL脚本文件
  29. String content = new String(Files.readAllBytes(Paths.get(scriptFile)));
  30. // 使用分号分割SQL语句
  31. Scanner scanner = new Scanner(content);
  32. scanner.useDelimiter(";");
  33. Statement stmt = conn.createStatement();
  34. while (scanner.hasNext()) {
  35. String sql = scanner.next().trim();
  36. if (!sql.isEmpty() && !sql.startsWith("--") && !sql.startsWith("/*")) {
  37. try {
  38. stmt.execute(sql);
  39. } catch (SQLException e) {
  40. System.err.println("执行SQL失败: " + sql);
  41. System.err.println("错误信息: " + e.getMessage());
  42. }
  43. }
  44. }
  45. stmt.close();
  46. scanner.close();
  47. System.out.println("脚本 " + scriptFile + " 执行完成!");
  48. } catch (Exception e) {
  49. System.err.println("执行脚本 " + scriptFile + " 时出错:");
  50. e.printStackTrace();
  51. }
  52. }
  53. }