通过jdbc

时间:2018-08-30 08:49:10

标签: java mysql bash shell jdbc

是否可以通过java代码中的jdbc运行linux shell命令?如何运行? 我一直在尝试:

Class.forName("com.mysql.jdbc.Driver");
        connect = DriverManager.getConnection("jdbc:mysql://" + this.host + "/" + this.db + "?", properties);
        statement = connect.createStatement();
        String sql = "\\! touch /home/dbsms/testfile";
        statement.execute(sql);

但是我得到“您的SQL语法有错误;”错误。我尝试这样做的原因: MySQL服务器正在受保护(无Internet)网络上的计算机上运行。我的Java应用程序旨在处理数据库。它是一个文档管理数据库。因此,将新文档插入数据库后,我需要通知用户。同一网络上还有另一台能够发送SMS的计算机。我需要创建一个包含SMS文本的文件,并将其命名为电话号码,然后SMS机器上的守护进程将对其进行处理。我知道有些库可以让我通过ssh在远程计算机上执行shell命令,但如果可能的话,我想使用jdbc。

2 个答案:

答案 0 :(得分:0)

使用jdbc,我们正在建立数据库连接,这必须给出有效的sql语句才能执行。因此,您遇到了错误。

但是,使用Java可以执行shell命令。 This article将为您提供帮助。

答案 1 :(得分:0)

不是,JDBC用于在数据库中执行SQL语句。

Java可以运行OS级别的命令,但仅限于运行JVM的框中。

在我看来(我可能错了),您想在服务器而不是本地计算机中运行它们。如果是这种情况,则可能需要使用SSH或类似方法打开与服务器的远程连接,以便远程运行命令。