2009年12月19日土曜日

NOT EXISTS、Aに無くてBに無いものを抽出する。

Aに無くて、Bに無いものを抽出する。

SELECT *
FROM t1
WHERE NOT EXISTS (
SELECT 'X' FROM t2 WHERE t1.column_key = t2.column_key
)
AND 条件を書いてもOK

2009年12月16日水曜日

再帰を実装してみた。

再帰を実装してみた。コードはダミーだけど。
以下のような感じ。
まだまだ、甘い部分はあるけど。
エラー処理とか。そこら辺はおいおい考えよう。
まずは、出来たことに拍手、俺!!

function recursive() throws SQLException{
String sql = "sqlStatement";
PreparedStatement ps = null;
ResultSet rs = null;
try{
ps = con.prepareStatement(sql);
ps.setInt(1,id);
ps.setInt(2,corp);
ps.setInt(3,code);
rs = ps.executeQuery();

while(rs.next()){
Dto dto= new Dto();
dto.setId(rs.getInt(1));
if(dto.getCond() == CONDITION){
this.mstlist.add(mstElm);
}else{
recursive(dto.getId(),corp,code);
}
}
closer(rs,ps);
}finally{
//do nothing
}
}

2009年12月6日日曜日

Velocityの導入時にお世話になりそうなサイトたち

1:導入方法
http://www.atmarkit.co.jp/fjava/javatips/103jakarta017.html

2:公式_commons
http://velocity.apache.org/

この例で言うと、*.vmがきた時にVelocityサーブレットで直接処理をしている。
結局、VM自体は最終的に呼ばないといけないんだけど、Actionの最後で、Velocityのサービスに
処理を委譲するということになる。今の仕組みだとMainServlet一発でよろしくやろうとしているので、
そもそもServlet自体を分離する必要があるのではないか。となると、作るフレームワークも最終的にVelocityServletに処理を委譲するやり方を取る必要があるということか。。。

ここには、自身が書いたプログラムと今から実装しなければ行けない部分のギャップを埋める必要があるんだよと言うことを認識するための備忘として残しておく。

2009年7月10日金曜日

Oracle Express

Oracleって無料版があるんだぁ。。。
知らなかったです。
以下がURL
http://builder.japan.zdnet.com/sp/oracle-db-2008/story/0,3800086786,20375936,00.htm

2009年7月8日水曜日

あまりにも駄目なので公開処刑

ども、あまりにも自分が寒いことをやったので、懺悔と再発の防止の為に、
書いておきます。
NUMBER(5,2) としたばあいは、123.44ならOK, 1234.4なら精度違反。
ああ、辛い(T3T)

2009年6月30日火曜日

トランザクション管理

当たり前だけど、トランザクションの一貫性は保たないと駄目です。
Springでデータソース経由でConnectionをもらってくるのか、
それとも、生のJDBCでDriverManager経由でConnectionもらってくるのか。
前者なら、宣言的トランザクション管理とかしないと駄目で、
1トランザクションの定義をしっかりしないと。
後者は超簡単で、いつもどおりに例外を拾って、rollbackすればよい。
でも、最悪なのは混ざっていること。
混ざってしまっている場合は、基本的にprimitiveな形に合わせるほうが良い。

だって、会社内でのフレームワークなら、何もjarを突っ込まずに出来るほうが良いから。

2009年6月23日火曜日

計画の大事さ

当たり前だけど、計画は大事。

計画するに当たって、一番大事なことだけを気付いたことベースで書いていく。

着想の手順
  1. まずは終わりを考える。どうすれば終わるのか?
  2. そして、基本設計に入る。
基本設計の定義は色々あるんだけど、自分の中でこのような順序でやれば間違いない。
  1. まずはやりたいことをひたすら書く(完全にブレスト、何も考えずに思いつくだけ書く。夢や理想も入れて)
  2. そんでもって、一つ一つに対する実現方法を列挙する
  3. 出来上がったもを、時系列に並べる
  4. 何が、頭を使う作業なのかを考える。(ここが一番大事!
  5. 全てに対して、自分での締め切り(プロジェクトとしての締め切りを明記する。)
  6. この状態で、ミーティングのテーブルに持っていく。
これで、出来上がる。

後は、先人・先輩の意見を取り入れて、改造して出来上がり。

出来上がったら、自分で絶対に言い訳をせずに、取り組む。

本当に駄目ならリスケする。

この時も何が大事で、どう在るべきかを考えなければ、意味のあるリスケにはならない。

と書いてみれば、至極当然の話ですね。

でも、出来ないのは今まで何となくやってきたら、プロセスをやはり大事にした方が良いという結論ですね。

2009年1月8日木曜日

Java記念日

何か最近やっとJavaに触れている気がしている。
業務だとか、プレゼンだとか、ミーティングだとか。。。
大事だけど、やっぱり書かなきゃ始まらんでしょう?
本当のレボリューションは実行のみなんだよな。悔しいけど、それ以上の論理はやっぱりないし。
難しいことみんなはいうけど、しっかり考えてやる。
実はこれだけなんだよなぁ。
色々と社会の役に立つ方法を考えて、実際にやってみようと思う今日この頃です。
今はそれをプログラミングで実現する。そう思い立った今日はJava記念日!