Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

ProcessBuilderでコマンドプロンプトを利用しMySQLへ接続

題名の件でご質問させていただければと思います。

まず、コマンドプロンプトで直接下記のコマンドを実行し
ましたら、成功しMySQLへログインできました。

mysql -h ホスト名 -D データベース名 -u ユーザ名 -pパ
スワード --default-character-set=utf8

しかし、下記のソースではプログラムが止まってしまいま
す。※一部抜粋しております。

ProcessBuilder pb = 
new ProcessBuilder("cmd", "/c", "mysql",
"-h", "ホスト名",
"-D", "データベース名",
"-u", "ユーザ名",
"-pパスワード",
"--default-character-set=utf8");

Process p = pb.start(); ←ここで止まります。


なお、JDBCを使えば良いと思われるかもしれません。
ですが、当方の環境ではJDBCでMySQLへ接続できました
が、お客様の環境では接続できなかったのです。
それならばJDBCを使わず、直接mysql.exeで接続したらど
うか?と考えました。


ご教授いただければ幸いです。

1

回答

81536

閲覧

1件の回答

評価

0

自分の質問に「ご」を付けてはいかん。(最近多いなあ)

根本的にアプローチがおかしい。
JDBCで接続できないはずがないのに、原因を探ろうとせず
(何かしていても、書いてなければやってないのと同じ)逃
げている。

Processを使って接続したとして、その後どうSQLを発行して
結果を受け取ればいいのか、当たりは付けているのか。
仮にそれでうまく行ったとして、そんないびつなアプリで客
は納得するのか。
例えばJDBC経由なら発生し得ない脆弱性への対処を全部自分
で作り込むことになるし、客がLinuxで動かしたいと言い出し
たら書き直しになるが、そういったことは考えているのか。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。