使用Java的SQL导入
我曾尝试在java项目中导出和导入数据库,但execute命令不起作用。下面是我完成的代码使用Java的SQL导入,java,mysql,export,Java,Mysql,Export,我曾尝试在java项目中导出和导入数据库,但execute命令不起作用。下面是我完成的代码 public boolean exportDatabase(String fromServer, String FileName, String FilePath, int ExportOpions) { try { Class.forName(Driver).newInstance(); } catch (fina
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”
预先添加到您的\u命令\u to \u be \u run中
使其成为:
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
如果您正在运行命令,则需要将
“cmd”
前置到您的命令\u to \u be \u run
使其成为:
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
您可以这样尝试:
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 = ""
您可以这样尝试:
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+”>“+文件名
试试这个
字符串executeCmd=“FilePath+”mysqldump-u”+dbUser+“-p”+dbPass+”
“+dbName+”>“+文件名
第一组系统变量
C:\ProgramFiles\MySQL\MySQL Server 5.1\bin代码>
然后
String executeCmd=mysqldump-u“+dbUser+”-p“+dbPass+”+dbName+“>”+FileName;
第一组系统变量
C:\ProgramFiles\MySQL\MySQL服务器5.1\bin;
然后
String executeCmd=mysqldump-u“+dbUser+”-p“+dbPass+”“+dbName+”>“+FileName代码>@gapchoo这个地址?你能更清楚你想做什么吗?@gapchoo这个地址?你能更清楚地知道你想做什么吗?哈坎佩克坎:永远不要有一个没有任何异常处理的“全面捕获”异常处理程序。这是非常糟糕的风格,会(而且会)引起很大的混乱!hakanpekcan:如果没有任何异常处理,就永远不会有“全面捕获”异常处理程序。这是非常糟糕的风格,会(而且会)引起很大的混乱!我将对此进行修改。mysqldump用于导出,对吗?mysqldump用于导出,对吗?