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

2008年9月29日月曜日

JavaBeans, EJB

・JavaBeans: ローカル環境で動くBean
EJB(Enterprise JavaBeans):リモート環境で動くBeanの2種類
http://www.atmarkit.co.jp/fjava/rensai/smartj01/smartj01_0.html
・Beanがどのように使われるか、処理の流れ
http://www.atmarkit.co.jp/fjava/rensai/smartj01/smartj01_1.html
・何のために?
プログラムの生産性や使い勝手のよいシステムができるといわれている。
・はじめてのJavaBeans
http://www.javaroad.jp/servletjsp/sj_beans1.htm
・基本的に、主な処理は全部Beanの中にある。
アクセッサ以外にもいろいろなメソッドがあるなら、それはentityクラスではなくなるのでは?
それとも、処理をするBeanとentityクラスとは分けるべきなのか?
・entityクラス、としてはエンティティBeanというのもある
EJBの1種。
・今回は
同じBeanにエンティティの機能と主な処理の機能と、両方入れる形ではじめてみる。
もし、途中で分けたほうがいい、となったら分ければいい。

CEATEC JAPAN 2008

10月8日(土)

http://www.ceatec.com/2008/ja/

クラス図について

・多重度の書き方がよく分からない。。
インスタンスでどうなっているかを意識して書く。
(外部設計の段階でも、オブジェクト指向言語、というくらいは技術のことを考える必要がある)
ER図と外部設計のクラス図は同じではない。

・関連するクラスは属性には書かないらしいが、書かないと混乱しそう。
分かりにくければ書くべき。
分かりきっていれば省略してもOK。

入力制限

HTMLでの入力制限はまずはすべき。
JavaScriptでもすべきではある。
JavaScript--入力したものは、OKだったら送信する。

・どの程度すべきなのか?
調べてみたら?
無印:50字以内、記号は通す。
IKEA:文字数制限なし、記号も通す

eclipseの使い方

・どんな種類のプロジェクトにするかが重要
http://www.atmarkit.co.jp/fjava/rensai3/eclipse31_02/eclipse31_02_1.html
・同じファイルを2つのエディタで開くことができる。大きなファイルを編集しているときに便利。
・[コードの断片]の実行
ちょっとコードを試したいときに便利。
・関連するクラスへの移動
コンテキストメニューからメソッドの実行部分→宣言部分など、ジャンプできる。

WTP

「Eclipseを用いたJavaサーバサイドアプリケーション開発環境の大本命」
WST(Web Standard Tools) + JST(J2EE Standard Tools)
http://www.atmarkit.co.jp/fjava/rensai3/eclipse31_03/eclipse31_03_1.html
・WTP 0.7.xでは、日本語Windows環境でも既定の文字コードがWindows-31JではなくShift_JISになってしまう
パッチフラグメントがあるようだけれど、今回はとりあえずインストールしないで進める。
(WTPのバージョンが分からないし、Shift-JISでもいいのでは?)

2008年9月26日金曜日

JSP pageディレクティブのerrorPage属性

設定しなければ、デフォルトのエラーページを出してくれる。
とりあえず、実装時にはデフォルトページにさせておくのがよい気がする。
運用時には、何か作ったほうが、ユーザに変なもの見せなくてすむのでよいかも。

JSPの文字コード

とりあえずShift-JISにしておく。
・どうしてUTF-8じゃだめなのか
・JSP, Servlet, Tomcat, postgreSQLの文字コードの仕組み
について、理解できれば得るものは大きいと思う。
とはいえ、今日は上記調べた内容でいっぱいいっぱいなので、
実装時に引っかかったら、その時にきちんと勉強することにします。

<jsp:include>について

・<jsp:include page="ファイル" flush="true | false"/>のflush属性について。
インクルードするコンテンツを読み込む前に、存在する任意のバッファーをフラッシュするかどうかを指示。
フラッシュが重要な問題になることはあまりない。
http://www.ibm.com/developerworks/jp/java/library/j-jsp04293/index.html
・includeされる方のファイルも、単独で成立している必要がある。
(単独でコンパイルされるから)
http://www.javadrive.jp/servlet/jsp_action/index4.html
CSSもきちんと適用されている必要がある。

Servlet+JSP+JavaBeansの復習

まずは教科書(http://www.javaroad.jp/servletjsp/index.html)を読んでみる。
・init()、destroy()はどういう使い方をするんだろう?
・スコープにはrequest, session, applicationの3つがある。どれも使うことになりそうだが、使い分け、必要なシーンについては把握できていない。
sessionはクライアント単位、applicationはアプリケーション全体の単位で、複数のサーブレットをまたぐことができる、という意味ではどちらも同じ、という解釈でいいのかな?
・web.xmlに初期パラメータを書いておけるみたい。ハードコーディングしなくてよくなる♪
・WebアプリケーションでのJavaBeansの役割
は、MVC2(JavaのWebアプリ)のモデル部、ということでいいらしい。

JSPタグライブラリ

・カスタムタグ
http://www.javaroad.jp/servletjsp/sj_jsp13.htm
http://www.hellohiro.com/customtag.htm
JSPで繰り返し行う処理、見た目が複雑になりそうな処理をJavaで別途書いておく感じ。
http://www.itmedia.co.jp/enterprise/0307/24/epn23.html
今回使うとしたらカスタムタグだが、設計段階でそこまでフォローできる自信はまったくない。
・JSTL (Java Standard Tag Library)
式の評価、繰り返し、条件分岐、日付や数値のフォーマットなどができる。
http://www.fk.urban.ne.jp/home/kishida/kouza/kishou/jspjstl.html
JSPだけでプログラムを作りたい状況には必須のよう。
・Taglibs
Jakarta製。JSTLは、この一部のよう。
JSPカスタムタグを用いて、結果として出力されるHTMLを自由自在に操りたい、という場合には、非常に有用そう。

DreamWeaverでJSPを作成する要領をよくしたい。

http://www.atmarkit.co.jp/ad/adobe/adobe0610/01.html
DreamWeaverの機能をほとんど使いこなせていない。
Webアプリケーション作成、JSP作成に役立つ部分だけでも少しは学びたい。

Jude

論理設計のビューと物理設計のビューが切り替えられない。
もう一枚クラス図を描こうとしたが、
モデルのステレオタイプをエンティティにしておいたら、モデルをドラッグ&ドロップしても属性や操作が見られない・・・。
仕方ないので、画像としてだけ保存して、後はそのまま作り変えてしまうことにした。
Judeは、Javaのスケルトンクラスを作成してくれるのは便利だが、この点では不便だ。
もっといいツールはないのだろうか。

ユーティリティクラス

Utilsクラスについては、JakartaCommonsがよいらしい。
http://www.nulab.co.jp/designPatterns/designPatterns4/designPatterns4-1.html
http://commons.apache.org/components.html
今回使えそうなものには、DBCP, DBUtils, Validatorがある。

JSP設計

・何度も出てくる部分は別ファイルに分けることにする。

  

http://www.javaroad.jp/servletjsp/sj_jsp4.htm
で変数を渡して実行・表示できるみたいなので。
(includeディレクティブと似ているので、間違えないように。)
・経理担当者、店員のページについては、
どの程度、ページに含まれる要素をまとめるのが適切なのか、
よくつかめない。

filterについて

http://www.ibm.com/developerworks/jp/java/library/j-pj2ee10/index.html#IDA00M0B
・認証もできる
http://www.stackasterisk.jp/tech/java/filterAuth01_01.jsp
・URLのリライトもできる
http://journal.mycom.co.jp/articles/2007/05/21/urlrrewrite/menu.html
クラス作ってから、最後にまとめたほうがいいのかな?
現状で、ぱっと使えそう、という感じなのは、
・ユーザ認証
・(セッション管理)
・文字コード管理
の3つくらい。
とはいえ、自分で機能を一から作れるので、これ以外にも何かあったら使えばよいと思う。
・複数のページに一気にフィルタをかけるには
http://www.sk-jp.com/java/servlet/webxml.html#h22
・web.xmlリファレンス
http://www.sk-jp.com/java/servlet/webxml.html

2008年9月22日月曜日

日経産業新聞

Casio EX-FH20
1秒40コマ連射。8万円台。小型。
いいかも。重さによる。
http://dc.casio.jp/product/exilim/ex_fh20/