2008年9月30日火曜日

SQL関連組み込みクラスの利用

使えそうなパッケージ
【java.sql】
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/guide/jdbc/getstart/preparedstatement.html
http://www.atmarkit.co.jp/fjava/rensai/jdbc04/jdbc04_1.html
・preparedStatementとstoredProcedure
preparedStatement:Javaに処理をためておく。
preparedStatementやコネクションをクローズしたらもう同じSQL文は使えないみたい。
storedProcedure:DBに処理をためておく。Javaからは外部の関数みたいな感じで呼べる。
システム全体で使いまわしたいならstoredProcedure使ったほうが楽になるかもしれない。変更の手間は大きくなってしまうけれど。

【javax.sql】
RowSetが使える。
Rowset:ResultSetと同等のデータベース・カーソル機能を持つJavaBeansコンポーネント。
http://www.atmarkit.co.jp/fjava/kaisetsu/j2eewatch06/j2eewatch06.html
今回のことだけを見れば、使うメリットはあまり無いように思う。
JavaBeansをきっちり理解したい、極めたいという目的ならやる価値はありそう。

・とりあえずSQLをDAOへ
・DAO内でPreparedStatement
sql文の?のところでは’とか”とか気にしなくていい。

beanのプロパティが埋まったことをlistenした方がいいんだろうか?

基本的にシングルスレッドと考えていいので大丈夫、かもしれない。

postgreSQL

7.テーブル作成
AmaterasERDでDDLをエクスポート、psql内部コマンド\iでインポートした。
8.\iコマンドがなぜかeclipseで作成したSQLファイルに対しては使えない
Permissionがないらしい。
ファイルのパーミッションを変えればOK.
9.CSVをCOPYでインポートする
・postgres(スーパーユーザ)じゃないとCOPYコマンドが使えない。
・ディレクトリの区切りは\じゃなくて/。''で囲むのを忘れないように。
・普通にCOPYしようとするとserialの扱いで引っかかる。
csvファイルだとすべて文字列として扱われてしまって、空の文字列になってしまう。
少しずるいけど解決策。
http://www.hoge256.net/2008/08/179.html

DBUtils

http://www.atmarkit.co.jp/fjava/javatips/101java013.html

Beans

・DBの連携について
特に何か特別なことがあるようではないらしい。
・Beanであるための条件
既出の2つ以外には特にないようだ。

JUnitとCVS

3.JUnit
・単体テスト向けのフレームワーク
JUnitには、テスト処理のための便利なメソッド、管理機能が用意されている。
単体で使用することもできますが、多くの統合開発環境(IDE)と連携することもできる。
・今回はあまり使うチャンスがない気がする。。
4.CVS(Concurrent Versions System)
・バージョン管理ソフト
・こちらも今回使う機会があるのかどうか。。

WARとは

WARファイルはWebアプリケーションに必要なHTML、JSP、classなどのファイルを一まとまりにまとめたもので、主にWebアプリをアプリケーションサーバに配置する際に使用します。WARファイルをアプリケーションサーバの所定の位置に配置することで(Tomcatの場合は、$CATALINA_HOME\webapps)、WARファイルが自動展開され、Webアプリを実行可能な状態にすることができます。
http://www.javaroad.jp/opensource/js_eclipse6.htm