我有一个java类,我在其中调用runhellscript方法来执行脚本.它与mysql一起工作得很好,但我似乎无法找出为什么它不能与psql很好地工作.这是我的runhell方法的摘录:
public class RunShellScript {
public static void runShellScript (String unixCommand)
{
try {
Runtime runtime=Runtime.getRuntime();
//Process process=runtime.exec(new String [] { "/bin/csh", "-c", unixCommand});
Process process=runtime.exec(new String [] {unixCommand});
InputStream stderr=process.getErrorStream();
InputStreamReader isr=new InputStreamReader (stderr);
BufferedReader br=new BufferedReader (isr);
String line=null;
System.out.println("<ERROR>");
while((line=br.readLine())!=null)
System.out.println(line);
System.out.println(line);
int exitVal=process.waitFor();
System.out.println("Process exitValue:" + exitVal);
}
catch (Throwable t)
{
t.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我把它放在鼠标点击事件后面时,它说命令未找到.这是代码beuind the mous事件
private void jMenuItem13MousePressed(java.awt.event.MouseEvent evt) {
String shellCommand="vobs/tools/Scripts/DataValidation/mysqlconnection.csh";
RunShellScript.runShellScript(shellCommand);
// TODO add your handling code here:
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当我直接进入脚本所在的目录并输入./mysqlconnection时,脚本可以工作.但是,当我只是键入mysqlconnection时,说找不到命令.不知怎的,它没有将我的脚本名称识别为命令?
我正在尝试设计一个Java swing应用程序.我想尝试并使用MVC类型的体系结构,我的UI与实际逻辑分离,以访问数据并连接到数据库.我已经决定创建一个自定义类,其中包含连接到数据库的所有逻辑,然后在我的action事件中为任何特定的表单和按钮调用此类中的方法.这样我可以切换数据库和我需要做的所有事情(如果我有一个包含许多表单的大型代码库)就是更改JDBC连接字符串以连接到oracle而不是MySQL.到目前为止,我有连接到数据库的代码,但我想弄清楚如何使这个类成为一个类.
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con=(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/prototypeeop","root","triala");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
Run Code Online (Sandbox Code Playgroud)
然后,我将从连接类的成员函数返回结果集,以处理并显示在屏幕上.
我知道在尝试将报告写入Oracle SQLplus中的文件时使用spool命令.
MySQL中的等效命令是什么?
这是我的代码:
set termout off
spool ${DB_ADMIN_HOME}/data/Datareport.log @ ${DB_ADMIN_HOME}/Scripts.Datavalidation/Datareportscript.sql
spool off
exit
Run Code Online (Sandbox Code Playgroud)
我怎样才能在MySQL中编写它?