簡體   English   中英

使用Java的SQL導入

[英]SQL import using Java

我試圖在我的java項目中導出和導入數據庫。但是execute命令不起作用。 以下是我完成的代碼。

    public boolean exportDatabase(String fromServer, String FileName, String FilePath, int ExportOpions)
    {

        try {
            Class.forName(Driver).newInstance();
        }
        catch (final InstantiationException e) {
            NLogger.writeDebugLog(e);
        }
        catch (final IllegalAccessException e) {
            NLogger.writeDebugLog(e);
        }
        catch (final java.lang.ClassNotFoundException e) {
        NLogger.writeDebugLog(e);
    }
    try {

        String dbName ="DBsample";
        String dbUser = "root";
        String dbPass ="root";


        String executeCmd ="CD "+FilePath+" mysqldump -u "+dbUser+ "-p"+dbPass+" "+dbName+ ">" +FileName;

        Process runtimeProcess =Runtime.getRuntime().exec(executeCmd);
        int processComplete = runtimeProcess.waitFor();
        if(processComplete == 0){
        System.out.println("Backup taken successfully");
        } 
        else {
        System.out.println("Could not take mysql backup");
        }
    return true;
    }
    catch (final Exception ex) {
        NLogger.writeErrorLog("Database Connection Failed ", ex.toString());
        NLogger.writeDebugLog(ex);
        return false;
    }

}

這顯示為錯誤

“無法運行程序“ CD”:CreateProcess錯誤= 2,系統找不到指定的文件”

我該如何解決這個問題?

如果正在運行命令,則需要在"cmd"添加"cmd"

使其為:

String executeCmd ="cmd CD "+FilePath+" mysqldump -u "+dbUser+ "-p"+dbPass+" "+dbName+ ">" +FileName;

另外我也不知道要導出的命令,但是看來您的命令是錯誤的。 您應該直接指定目錄。 您在命令中使用cd 考慮以下示例:

C:\mydir1\mydir2\some.exe   // this is correct
cmd cd C:\mydir1\mydir2 some.exe   // this is wrong

首先設置系統變量,例如

C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin;

然后

String executeCmd = mysqldump -u "+dbUser+ "-p"+dbPass+" "+dbName+ ">" +FileName;

您可以這樣嘗試:

try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

    conn = DriverManager.getConnection(DbConnectionAdress, DbName, DbSifre);
    statement = conn.createStatement();
} catch (Exception e) {
    throw new RuntimeException(e);
}

String DbConnectionAdress = " "

DbName = ""

DbSifre = ""

嘗試這個....

字符串executeCmd =“ FilePath +” mysqldump -u“ + dbUser +” -p“ + dbPass +”“ + dbName +”>“ + FileName;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM