version 3.0
目次
Stewは、...
概要については、README_ja.txtをご覧ください。
パスワードは、デフォルトではそのまま保存します。生のパスワードを保存したくない場合は、暗号化を利用できます。
詳しくは、使い方-接続設定を参照してください。
デフォルトでは、disconnectコマンドによりコネクションを切断するとき、rollbackを発行しません。DBMSによっては、トランザクションが自動的にコミットされてしまうことがありますので注意が必要です。
「切断時に自動ロールバック」を設定すると、disconnectの際に自動的にrollbackを発行します。詳細は、接続設定を参照してください。
プロジェクトサイトにて追加説明を行っていますので、あわせてご利用ください。
JRE(Java実行環境)1.5以上がインストールされている必要があります。
また、利用するデータベースのJDBCドライバが必要です。
リリースパッケージを任意のディレクトリに展開します。
インストールサイズを最小限にしたい場合はリリースパッケージに含まれている"stew.jar"だけを展開してください。
起動コマンドの設定は、次の起動方法を参照してください。
GUIモードで起動する場合は、以下のコマンドを実行します。
> java -jar stew.jar --gui
CUIモードで起動する場合は、以下のコマンドを実行します。
> java -jar stew.jar --cui
起動スクリプトを作成しておくと便利です。UNIX系OSの場合は"stew.sh"を、Windowsの場合は"stew.bat"を参照してください。
Stewを実行すると、".stew"ディレクトリが作成され、設定の保存に使用されます。".stew"ディレクトリは、デフォルトではカレントディレクトリに作成されます。
インストールしたファイルと".stew"ファイルを削除してください。
Stewを使用するには、JDBC接続が可能なデータベースと、JDBCドライバが必要です。JDBCドライバ自体の詳細については、各データベースの説明書などを参照してください。
CUIの場合は、起動時に--editオプションを指定すると、編集プログラムが起動します。
GUIの場合は、メニューの"接続設定"を実行すると、編集ダイアログが開きます。
それぞれの設定項目の説明は次のとおりです。
これらの情報は、".stew/connectors.properties"に保存されます。手動で編集することもできますが、その際は注意して行ってください。
パスワードは設定ファイルに保存されるため、そのまま保存すると都合が悪い場合があります。パスワードの保存方法は、暗号化処理を選択することができます。
独自のパスワード暗号化を追加することもできます。(実装詳細:Passwordインタフェースの実装クラスを追加します。)
通常の起動では、対話モードでの操作となります。
対話モードでは、コマンド入力待ち状態になった時にコマンドを入力し、処理が終わると再びコマンド入力待ちになります。
FTPコマンドのようなプログラムの操作に似ているかもしれません。
Stewの処理が一行の入力で完結します。"stew"コマンドを設定していると仮定すると、次のような形式で実行します。
$ stew <connector-id> <command>
実行すると、<connector-id>の接続設定で接続を開始し、その接続を使用してコマンドを実行します。コマンド実行後、接続を切断して終了します。
このモードでは、ご利用のshell環境の制約(例えば、ワイルドカード,リダイレクト など)を受けますのでご注意ください。
組み込みコマンドは、Stewから切り離すことができないコマンドです。(実装詳細:Commandクラスのサブクラスではなく、Command.invokeメソッドに直接書かれている処理です。)
それ以外は、追加コマンドとして実装されています。(実装詳細:Commandクラスのサブクラスによる処理です。)
コマンドでない文が指定された場合は、SQLとして実行されます。バインド変数のあるSQL文を使う場合は、最後に";"(セミコロン)をつけ、それ以降にカンマ区切りでパラメータを指定できます。
> connect <connector-id>
> -c <connector-id>
予め用意した接続設定を使用して、データベースに接続します。対話モードでは、disconnectまたは強制的に切断されるまで、接続が維持されます。
すでに接続中の場合は、その接続を切断してから接続を行います。
> disconnect
> -d
データベースとの接続を切断します。
接続設定でrollbackを指定している場合は、rollbackを試みます。
現在のトランザクションでの変更をコミットします。
コミットする際は、誤って必要なデータを削除しないよう注意してください。
現在のトランザクションでの変更をロールバックします。
> -e <command> -e <command> ...
コマンドを連続して実行させます。exportなどを同時に実行する場合や、コマンドラインからの実行の場合に使います。
> -f <file>
ファイルの内容をコマンドとして実行します。再帰的に指定できますが、無限ループは検知できないので注意してください。
> @
カレントディレクトリとシステムディレクトリの場所を表示します。
> exit
Stewを終了します。確認待ちは行いません。
> load [<SQLファイル> | <データファイル> <テーブル名> [ HEADER ]]
指定されたファイルを読み込んで、SQLを実行します。
パラメータが1個の場合は、ファイルをSQL文と見なして実行します。
パラメータが2個以上の場合は、ファイルをデータファイルと見なして、インポートを実行します。ファイルの拡張子によって、ファイル形式が自動的に選択されます。
> import [<データファイル> <テーブル名> [ HEADER ]]
ファイルをデータファイルと見なして、インポートを実行します。ファイルの拡張子によって、ファイル形式が自動的に選択されます。
一括で処理する件数をプロパティで設定することができます。
(実装詳細:基本的には、loadのパラメータ2個以上指定した時と同じ動作ですが、Statement.addBatch()を使用します。)
> export <ファイル> [ HEADER ] [command(select|find|report)]
指定したファイルに、コマンドの検索結果を出力します。ファイルの拡張子によって、ファイル形式が自動的に選択されます。
> time [<回数>] <SQL文>
指定したSQL文を実行し、その実行時間を計測して表示します。回数が指定された場合は、回数分SQLを繰り返し実行して、「合計」「平均」「最大」「最小」を集計します。回数を指定しない場合は、1回の実行時間を表示します。
> time select * from test
実行時間 : 0.050 秒
> time 100 select * from test
合計 : 1.870 秒
平均 : 0.018 秒
最大 : 0.160 秒
最小 : 0.000 秒
>
> find <テーブル名パターン> [<テーブル種別パターン> [<スキーマ名パターン> [<カタログ名パターン> [ FULL ]]]]
参照可能なテーブルの一覧を表示します。"パターン"というキーワードを含むパラメータは、ワイルドカード(*,?)が指定できます。
> report - | <テーブル名> [ PK | INDEX ]
接続中のコネクションに関する情報を表示します。
-(ハイフン)が指定された場合は、DBとJDBCドライバの名称とバージョン、接続ユーザとアドレスを表示します。
テーブル名のみが指定された場合は、テーブルの列情報が表示されます。
テーブル名とオプションが指定された場合は、PKを指定するとプライマリキーの一覧が、INDEXを指定するとインデックスキーの一覧が、それぞれ表示されます。
> wait 秒(小数可)
指定された秒数、待機します。連続したコマンドを実行する場合などに使えるかもしれません。
GUIモードのメニューについての説明です。
新しいウィンドウを開きます。新しいウィンドウは、元のウィンドウとは独立した接続で処理が行われます。
ウィンドウを閉じます。コネクションが接続中の場合は、確認ダイアログを表示します。
開いているウィンドウが1つの場合は、終了(X)と同じ動作となります。
アプリケーションを終了します。確認ダイアログが表示され、"はい"を選択すると終了します。
選択範囲をクリップボードにコピーして、選択された部分を削除します。(基本的に、一般的なアプリケーションと同じ処理です。)
選択範囲をクリップボードにコピーします。(基本的に、一般的なアプリケーションと同じ処理です。)
カーソル位置にクリップボードの内容を貼り付けます。(基本的に、一般的なアプリケーションと同じ処理です。)
選択している領域(テーブルまたは入出力欄)を全選択状態にします。
選択している領域(テーブルまたは入出力欄)内の文字列を検索します。
テーブルはセル単位で検索します。入出力欄は、一致部分をハイライトします。
オプションで、「正規表現を使用する」「大文字と小文字を区別しない」が指定できます。
検索結果エリアと入力欄のフォーカスを入れ替えます(toggle)。
入出力欄のメッセージをクリアします。
選択された場合、ウィンドウの下部にステータスバーを表示します。
設定は保存されます。
選択された場合、検索結果の列名に番号を付けます。
選択された場合、情報ツリーペインを表示します。
選択された場合、ウィンドウを常に手前に表示するようにします。
検索結果を表示した際のクエリを再発行して、最新状態を表示します。
検索結果の列幅をそれぞれ1.5倍に拡大します。
検索結果の列幅をそれぞれ2/3に縮小します。
検索結果の列幅を自動調整します。次項の「列幅自動調整」で選択されたモードで調整されます。
検索結果表示時に、検索結果の列幅を自動調整するモードを選択します。
接続リストを表示します。接続リストで接続したい接続IDを選択して"了解"を押すと、connectと同じ処理が実行されます。
接続を切断します。disconnectコマンドと同じです。
接続設定のパスワード暗号化に使用される秘密鍵を設定します。
接続設定ダイアログを表示します。
コマンドを実行します。入出力欄でエンターキーを押したのと同じ効果があります。
コマンド履歴を1つ遡ります。
コマンド履歴を1つ進みます。
検索結果をファイルに出力します。exportコマンドとは独立した処理です。検索結果が表示されている場合のみ有効です。
検索結果のテーブルにファイルをインポートします。importコマンドとは独立した処理です。検索結果が表示されている場合のみ有効です。
検索結果をファイルに出力します。exportコマンドとは独立した処理です。検索結果が表示されている場合のみ有効です。
ヘルプを表示します。現在は未実装です。
バージョン情報ダイアログを表示します。
検索コマンドを実行したときに、結果を表示します。最左列は行番号が表示されます。列幅自動調整が設定されていれば、列幅が自動的に調整されます。
セルを編集すると、テーブルに反映(UPDATE)されます。
行番号が"*"になっている行は保留行です。保留行については、コンテキストメニューを参照。
コマンドの入力とメッセージの出力が同居する、コマンドラインのようなインターフェイスです。
エンターキーを押すと、プロンプトから末尾までがコマンドとして解釈され実行されます。カーソルが末尾にない場合は、カーソルが末尾に移動します。プロンプトより前の部分は編集不可となっています。
アンドゥ機能があります。
直前のコマンドとその実行時間が表示されます。実行時間は、timeコマンドとは異なり、コマンドの開始から終了までの所要時間となります。
マウスの右クリックにより、そのコントロールに即した機能のメニューが表示されます。表示されるメニュー内容は、入力部分ごとに異なります。
主なメニューは以下のとおりです。
※COMMIT,ROLLBACKは手動です。
以下の設定が、ウィンドウを閉じたとき(終了したときではない)に保存され、次回以降のウィンドウの設定として使用されます。
システムディレクトリに"keybind.conf"という名前のファイルを作成し、内容には"メニューのアクション名=KeyStrokeの文字列表現"を設定すると、メニューのキー割り当てが変更できます。
# 例 HISTORY_BACK = ctrl K
起動時に値を決定できるパラメータです。Javaのシステムプロパティ(Javaの-Dオプション)で指定するか、stew.propertiesファイルに記述します。
"設定値"は、設定する値についての説明です。設定値のカッコ内の値は既定値です。カッコがないものは既定値がありません。
設定値:ファイルまたはディレクトリのパス
stew.propertiesファイルを優先的に検索する場所を指定します。
指定されたパスがファイルの場合は、そのファイルをstew.propertiesの代わりにプロパティファイルとして読み込みます。指定されたパスがディレクトリの場合は、そこにstew.propertiesがあるものとみなされます。
指定されない場合は、クラスパス、システムディレクトリの順に検索されます。無い場合はプロパティファイルが無いものとみなされます。
設定値:ディレクトリパス(カレントディレクトリ)
コマンドで使用するディレクトリの開始時のパスを指定します。デフォルトシステムディレクトリとは異なります。
設定値:完全修飾クラス名(net.argius.stew.ui.console.ConsoleLauncher)
net.argius.Stewから実行した場合のみ有効です。
Launcherは、アプリケーションの起動、入力、コマンド実行、出力の管理を行う機能です。ここではそのクラス(実装詳細:net.argius.stew.ui.Launcherインタフェースを実装している必要があります。)を指定します。デフォルトは、標準入出力Launcherです。
設定値:完全修飾クラス名(net.argius.stew.ui.console.ConsoleOutputProcessor)
net.argius.Stewから実行した場合のみ有効です。
OutputProcessorは、出力制御を行う機能です。ここではそのクラス(実装詳細:net.argius.stew.ui.OutputProcessorインタフェースを実装している必要があります)を指定します。デフォルトは、標準出力制御です。
設定値:整数秒(0)
コマンド内のクエリが発行時に設定するタイムアウト値を指定します。0以下はタイムアウト未指定とみなされます。
(実装詳細:java.sql.Statement#setQueryTimeoutに設定する値。)
設定値:上限値(10000)
Importコマンドで一度に実行する件数の上限値を決定します。
設定値:整数分
実験的な機能です。
指定した分ごとに画面の再描画を行い、アプリケーションがスワップアウトしないようにします。
デバッグ用のLoggerに関するプロパティです。プロパティファイルに直接は指定できません(-Dオプションで指定可能)。
標準のLoggingAPI(java.util.logging)を使用したい場合は、以下のシステムプロパティを設定してください。LoggingAPI自体の設定は、APIドキュメントを参照してください。
-Dnet.argius.logging=true
-Dnet.argius.logging.class=net.argius.logging.LoggingApiWrapper