Java用sed运行shell命令mysql

时间:2015-08-06 00:11:10

标签: java mysql shell

我有一个shell命令(mysql),我在如何使用getruntime在java中运行它时遇到问题:

sql=$(mysql -u cactiuser -ppassword cacti -s -N -e "select name_cache, name from data_template_data where  data_source_path=\"<path_rra>/test.rrd\";" | sed 's/\t/,/g')

爪哇:

String command = "<sql above>";
Process p = Runtime.getRuntime().exec(command);
    p.waitFor();
    BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));

shell命令非常复杂,因为它有sed,我不知道如何正确地隔离它们以在getruntime中运行。非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

您应该使用与mysql的jdbc连接。忘记为此调用一个shell脚本,很丑陋而且非常无效。

更多信息: http://dev.mysql.com/doc/connector-j/en/connector-j-usagenotes-connect-drivermanager.html

获得数据后,可以用java代码编辑,而不是sed。