SELECT *
FROM t1
WHERE NOT EXISTS (
SELECT 'X' FROM t2 WHERE t1.column_key = t2.column_key
)
AND 条件を書いてもOK
2009年12月19日土曜日
NOT EXISTS、Aに無くてBに無いものを抽出する。
Aに無くて、Bに無いものを抽出する。
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に処理を委譲するやり方を取る必要があるということか。。。
ここには、自身が書いたプログラムと今から実装しなければ行けない部分のギャップを埋める必要があるんだよと言うことを認識するための備忘として残しておく。
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
知らなかったです。
以下が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)
書いておきます。
NUMBER(5,2) としたばあいは、123.44ならOK, 1234.4なら精度違反。
ああ、辛い(T3T)
2009年6月30日火曜日
トランザクション管理
当たり前だけど、トランザクションの一貫性は保たないと駄目です。
Springでデータソース経由でConnectionをもらってくるのか、
それとも、生のJDBCでDriverManager経由でConnectionもらってくるのか。
前者なら、宣言的トランザクション管理とかしないと駄目で、
1トランザクションの定義をしっかりしないと。
後者は超簡単で、いつもどおりに例外を拾って、rollbackすればよい。
でも、最悪なのは混ざっていること。
混ざってしまっている場合は、基本的にprimitiveな形に合わせるほうが良い。
だって、会社内でのフレームワークなら、何もjarを突っ込まずに出来るほうが良いから。
Springでデータソース経由でConnectionをもらってくるのか、
それとも、生のJDBCでDriverManager経由でConnectionもらってくるのか。
前者なら、宣言的トランザクション管理とかしないと駄目で、
1トランザクションの定義をしっかりしないと。
後者は超簡単で、いつもどおりに例外を拾って、rollbackすればよい。
でも、最悪なのは混ざっていること。
混ざってしまっている場合は、基本的にprimitiveな形に合わせるほうが良い。
だって、会社内でのフレームワークなら、何もjarを突っ込まずに出来るほうが良いから。
2009年6月23日火曜日
計画の大事さ
当たり前だけど、計画は大事。
計画するに当たって、一番大事なことだけを気付いたことベースで書いていく。
着想の手順
後は、先人・先輩の意見を取り入れて、改造して出来上がり。
出来上がったら、自分で絶対に言い訳をせずに、取り組む。
本当に駄目ならリスケする。
この時も何が大事で、どう在るべきかを考えなければ、意味のあるリスケにはならない。
と書いてみれば、至極当然の話ですね。
でも、出来ないのは今まで何となくやってきたら、プロセスをやはり大事にした方が良いという結論ですね。
計画するに当たって、一番大事なことだけを気付いたことベースで書いていく。
着想の手順
- まずは終わりを考える。どうすれば終わるのか?
- そして、基本設計に入る。
- まずはやりたいことをひたすら書く(完全にブレスト、何も考えずに思いつくだけ書く。夢や理想も入れて)
- そんでもって、一つ一つに対する実現方法を列挙する
- 出来上がったもを、時系列に並べる
- 何が、頭を使う作業なのかを考える。(ここが一番大事!)
- 全てに対して、自分での締め切り(プロジェクトとしての締め切りを明記する。)
- この状態で、ミーティングのテーブルに持っていく。
後は、先人・先輩の意見を取り入れて、改造して出来上がり。
出来上がったら、自分で絶対に言い訳をせずに、取り組む。
本当に駄目ならリスケする。
この時も何が大事で、どう在るべきかを考えなければ、意味のあるリスケにはならない。
と書いてみれば、至極当然の話ですね。
でも、出来ないのは今まで何となくやってきたら、プロセスをやはり大事にした方が良いという結論ですね。
登録:
投稿 (Atom)