STU
- ユーザーマニュアルfor STU ver. 1.00
このマニュアルは画像を使用していないため、分かりづらい箇所があるかもしれませんが、ご了承ください。
net.argius.stu.command.export.css.url
net.argius.stu.command.export.css.path
net.argius.stu.locale.language
net.argius.stu.locale.country
net.argius.stu.prompt.username
net.argius.stu.prompt.connectorname
net.argius.stu.prompt.multiline
net.argius.stu.connector.properties
net.argius.stu.statement.result.limit
net.argius.stu.statement.timeout.seconds
このツールは、JDBC
を使用してDB(データベース)との通信を行うSQLクライアントです。
JDBC
のテスト用に開発されたこともあって、操作性よりも拡張性に重点を置いています。
注意:重要なパスワードの管理には充分注意してください! このツールではパスワードを平文で保存します。
JDBC
のインターフェイスのみで実現しています。また、特定のDBMSに依存する機能はほとんどありません。(一部、特定のデータベースSQLのキーワード変換処理が含まれています。)STU
という名称は、SQL Terminal Utilities
の略から命名されました。
その後、STU
をもじってStew
(=シチュー)という別名がつけられました。
Java2
が実行できる環境であれば、プラットフォームは問いません。
以下の条件を満たしている必要があります。
Java2 SDK
またはJava2 JRE
がインストールされている環境(Java2 SE 1.3.1以上推奨)解凍したファイル一式を、好きなディレクトリに配置します。ここをインストールディレクトリと呼ぶことにします。
インストールディレクトリを削除します。GUIモードの場合、ホームディレクトリに.stuというディレクトリができますので、これも削除します。
次に、アプリケーションを起動します。
Stewパッケージの場合、stew.exeを実行してください。それ以外の場合、以下のように記述した起動スクリプトを作成するか、直接コマンドを実行します。
java -classpath "stu.jar:stu-standard.jar" net.argius.stu.standard.StandardView (Windowsの場合、パスのセパレータ":"を";"に変更してください。)
起動すると、ウィンドウが1つ表示されます。ウィンドウには、ペインが上下に2つあり、上が検索結果ペイン、下がメッセージペインとなっています。
以下のように記述した起動スクリプトを作成するか、直接コマンドを実行します。
java -jar stu.jar
起動すると、次のような入力待ち状態になります。
$ java -jar stu.jar STU - SQL ターミナル ユーティリティ version 1.0 >
設定には、JDBCドライバのライブラリファイルのパス、JDBCドライバクラスのFQCN(java.sql.Driverインターフェイスの実装クラスの完全修飾名)、接続情報のセットが必要です。
GUIモードの場合、メニューの[接続(C)]-[接続設定の編集(E)]を使って編集できます。直接編集する場合は、インストールディレクトリにある接続設定ファイル(connectors.propertiesファイル)を編集します。以下に、接続設定の例を示します。
PostgreSQLに接続する例
#--- drivers --- net.argius.stu.jdbc.drivers.path = /shares/lib/postgresql.jar net.argius.stu.jdbc.drivers.name = org.postgresql.Driver #--- connectors --- POST.url = jdbc:postgresql://localhost:5432/post POST.user = user POST.password = pass POST.userspecified = false
上記の例では、接続名"POST"がローカルのPostgreSQLサーバのpostインスタンスに接続する設定になっています。userspecifiedは、true
を設定すると、userとpasswordの設定が常に使用されます。false
を設定すると、userとpasswordを毎回入力するようになります。
※userspecified == falseは、コンソールモードには対応していません。
基本的な機能として、コマンドによりDBへアクセスします。コマンド名は、大文字小文字は無視されます。終端文字は不要です。
コネクションやスレッドに対しての操作です。
記号の説明 <keyword> --- keywordの意味するパラメータを指定することを示します [<keyword>] --- keywordが省略可能であることを示します [<key1>|<key2>] --- key1とkey2のどちらかを指定することを示します
CONNECT <connector-name>
DBに接続します。予め、プロパティに定義したDB接続情報を使用してコネクションを取得します。既に接続中の場合は、そのコネクションを破棄してから接続します。
接続した際、自動コミットモードはOFFに設定されます。
DBによっては、自動コミットモードが変更できないものがあります。
DISCONNECT
現在接続中のコネクションを切断します。
COMMIT
トランザクションの変更内容を実データへ反映します(コミット)。
コミットする際は、誤って必要なデータを削除しないよう注意してください。
ROLLBACK
トランザクションの変更内容を破棄します(ロールバック)。
CLOSE
現在のスレッドを終了させます。
標準機能では、EXIT
コマンドと同じです。拡張機能(GUIなど)では、複数のスレッドで動作させることができるので、実行中のスレッドだけを終了させる場合に使用します。
RELOAD
プロパティファイルから設定を再取得して反映させます。起動後に設定を変更した場合に使用します。但し、net.argius.stu.system
で始まるプロパティとstu
で始まらないプロパティは対象外(再起動が必要)です。
EXIT
アプリケーションを終了します。
組込みでないコマンドです。
SELECT <SQL-statement>
SELECT文を実行します。
UPDATE <SQL-statement>
UPDATE文を実行します。
INSERT <SQL-statement>
INSERT文を実行します。
DELETE <SQL-statement>
DELETE文を実行します。
COUNT <table-name> [<where-phrase>]
指定したテーブルの件数を表示します。
このコマンドは SELECT COUNT(*) FROM <table-name> [<where-phrase>]
と同じSQLを発行しますが、件数のみ表示します。
> count test 12575 件 ヒットしました。 >
EXPORT <file> [<SELECT-statement>|<table-name>]
ファイル名に拡張子.htmまたは.htmlが指定された場合は、HTML形式で出力します。それ以外の場合は、CSV形式で出力します。
SELECT文が指定された場合は、検索結果をファイルに出力します。テーブル名が指定された場合は、テーブルの情報を出力します。
TIME [<number-of-times>] <SQL-statement>
指定されたSQL文の実行時間を計測します。単位はミリ秒です。回数が指定された場合、回数分SQLを発行して「合計」「平均」「最大」「最小」を集計します。
> time select * from test 実行時間 : 0.050秒 > time 100 select * from test 合計 : 1.870 秒 平均 : 0.018 秒 最大 : 0.160 秒 最小 : 0.000 秒 >
複数回実行した場合、RDBMSによってはSQLがキャッシュされてしまう為、実行時間が意図せず短縮されてしまうことがあります。
FIND <table-name-pattern> <table-type> [<schema-name-pattern> [<catalog-name> [FULL]]]
接続中のコネクションで参照可能なテーブルの一覧を表示します。
pattern
というキーワードを含むパラメータは、ワイルドカード(*)が指定できます。
table-type
には、TABLE, VIEW, SYSTEM, TEMPORARY, ALIAS, SYNONYM
のいずれかを指定してください。複数指定したい場合は、スペース以外(ハイフンなど)の文字列でつなげて指定してください。(例:TABLE-VIEW)
> find * TABLE NAME TYPE SCHEME CATALOG ================ ================ ================ ================ samples TABLE public test TABLE public 2 件 ヒットしました。 >
REPORT [ - |<table-name> [<option>]]
接続中のコネクションに関する情報を表示します。
-
(ハイフン)が指定された場合は、DBとJDBCドライバの名称とバージョン、接続先のアドレスを表示します。
table-name
が指定された場合は、テーブルの列情報が表示されます。
option
が指定された場合は、pk
を指定するとプライマリキーの一覧が、index
を指定するとインデックスキーの一覧が、それぞれ表示されます。
> report - 製品名 : PostgreSQL 製品バージョン : 7.x.x ドライバ名 : PostgreSQL Native Driver ドライババージョン : PostgreSQL 7.x.x 接続先アドレス : jdbc:postgresql://localhost:5432/post > report test 順序 列名 NULL可 型 サイズ ==== = ================ ========== ================ ====== 1 count YES bpchar 2 2 memo YES varchar 64 3 starttime YES timestamp 8 3 件 ヒットしました。 >
LOAD [<sql-file> | <csv-file> <table-name>]
指定されたファイルを読み込んで、SQLを実行します。
第2引数が指定されていない場合は、SQLが記述されたファイルとみなし、ファイルの内容をSQLとして実行します。
第2引数が指定されている場合は、CSVファイルとみなし、指定されたテーブルにCSVの内容を追加(INSERT)します。
BIND <sql> : <comma-separated parameters>
バインドメカニズムによるSQLを実行します。
このコマンドでは、引数をコロンで区切ります。
第1引数には、プレースホルダ'?'を含むSQL文を指定します。
第2引数には、パラメータをカンマ区切りリストで指定します。コロンの直後にスペースがあると、最初のパラメータにスペースが付いてしまうので注意してください。
> bind select * from test where key=? :123 key name === ================ 123 test 1 件 ヒットしました。 >
GUIモードの場合でも、基本的な操作はコマンドで行いますが、いくつかの機能はGUI上で操作できます。
検索結果が表示されたテーブルの値を変更しても、元データには反映されません。
コマンドで相対パスを指定した場合の、カレントディレクトリを設定します。
新しいウィンドウを開きます。これらのウィンドウは別スレッドで動作しますので、それぞれ別のコネクションで処理されます。
新しいウィンドウを開きます。これらのウィンドウは別スレッドで動作しますので、それぞれ別のコネクションで処理されます。開いているウィンドウが1つの場合は、アプリケーション終了処理(次項参照)となります。 (コマンドCLOSEと同じ。)
接続名一覧ダイアログを表示します。ここで選択した接続名が、コマンドCONNECTに渡されます。
DBとの接続切断します。 (コマンドDISCONNECTと同じ。)
接続設定を専用ダイアログで編集できます。
表示されている検索結果テーブルの各カラム幅を、それぞれ25%ずつ拡げます。
表示されている検索結果テーブルの各カラム幅を、それぞれ25%ずつ縮めます。
表示されている検索結果テーブルの各カラム幅を、カラム名の文字数に合わせて揃えます。
結果ペインとメッセージペインのフォントサイズを拡大します。
結果ペインとメッセージペインのフォントサイズを縮小します。
結果ペインのバッファをクリアします。
バージョン情報を表示します。
プロパティを変更することで、いくつかの動作をカスタマイズできます。
基本機能についての設定を調整します。これらは、RELOAD
コマンドの対象外です。
net.argius.stu.locale.language
net.argius.stu.locale.country
通常は使用しません。
使用するロケールを設定します。ロケールに対応する言語のメッセージがロードされます。(詳しくは、Java2 SE API ドキュメントのjava.util.Locale
、java.util.ResourceBundle
を参照してください。)既定値はデフォルトロケールです。
このバージョンでは、en
、ja_JP
のみ定義されています。(ロケールが不明の場合はen
と同じものが適用されます。)
ユーザの環境に関連する設定を調整します。これらは、RELOAD
コマンドで変更できます。
net.argius.stu.prompt.username
net.argius.stu.prompt.connectorname
プロンプトの表示形式を設定します。プロンプトは、<username> @ <connectorname>
の形式で表示されます。それぞれ、true
とfalse
で表示・非表示を切り替えられます。既定値はいずれもfalse
です。
net.argius.stu.connector.properties
接続設定の読込み元を、指定した外部ファイルに設定します。指定しない、または指定したパスが不正の場合は、プロパティファイル自体に接続設定があるものとします。
net.argius.stu.prompt.multiline
正常な動作は保証されていません。
true
を指定すると、入力を複数行に分けて行えるようにします。入力を完了する場合に、終端に;
(セミコロン)をつけるとコマンドが実行されるようになります。但し、組み込みコマンドは;
を指定しない場合も1行で実行します。既定値はfalse
です。
net.argius.stu.statement.timeout.seconds
ログインおよびSQL実行の待ち時間(秒数)を設定します。(具体的には、java.sql.DriverManager.setLoginTimeout(int)
とjava.sql.Statement.setQueryTimeout(int)
が実行されます。)既定値は0
(無制限)です。
net.argius.stu.statement.result.limit
検索時に出力領域に表示するレコード件数の上限を設定します。既定値は0
(無制限)です。
net.argius.stu.command.export.css.url
net.argius.stu.command.export.css.path
拡張コマンドEXPORTのHTMLに使用されるスタイルシートのパスまたはURLを指定します。スタイルシートは直接HTMLに書き出されます。指定しない場合は、デフォルトスタイルシートが適用されます。
STU version 1.00 - User's Manual (2005.09.24)
COPYRIGHT(C) ARGIUS project