| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import java.sql.*;
- import java.io.*;
- import java.nio.file.*;
- import java.util.Scanner;
- public class ExecuteMenuScriptFixed {
- public static void main(String[] args) {
- String url = "jdbc:dm://192.168.0.145:30236";
- String username = "WATERSHED";
- String password = "WaterShed./1224";
-
- try {
- // 加载DM JDBC驱动
- Class.forName("dm.jdbc.driver.DmDriver");
-
- // 建立数据库连接
- Connection conn = DriverManager.getConnection(url, username, password);
- System.out.println("数据库连接成功!");
-
- // 执行菜单脚本文件
- executeScript(conn, "watershed_menu_fixed.sql");
-
- // 关闭连接
- conn.close();
- System.out.println("菜单配置脚本执行完成!");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private static void executeScript(Connection conn, String scriptFile) {
- try {
- System.out.println("正在执行脚本: " + scriptFile);
-
- // 读取SQL脚本文件
- String content = new String(Files.readAllBytes(Paths.get(scriptFile)));
-
- // 使用分号分割SQL语句
- Scanner scanner = new Scanner(content);
- scanner.useDelimiter(";");
-
- Statement stmt = conn.createStatement();
-
- while (scanner.hasNext()) {
- String sql = scanner.next().trim();
- if (!sql.isEmpty() && !sql.startsWith("--") && !sql.startsWith("/*")) {
- try {
- stmt.execute(sql);
- System.out.println("执行成功: " + sql.substring(0, Math.min(50, sql.length())) + "...");
- } catch (SQLException e) {
- System.err.println("执行SQL失败: " + sql);
- System.err.println("错误信息: " + e.getMessage());
- }
- }
- }
-
- stmt.close();
- scanner.close();
-
- System.out.println("脚本 " + scriptFile + " 执行完成!");
- } catch (Exception e) {
- System.err.println("执行脚本 " + scriptFile + " 时出错:");
- e.printStackTrace();
- }
- }
- }
|