月別アーカイブ: 2014年4月

Oracleの基礎勉強中

ばんはっす。

とりあえず生きてます(笑)
ServletベースのJAVAとJSは読めそうだから良いとして、
ソース内にあるSQLが読めない\(^o^)/

なので、下記で基礎をさっさと埋め込まないとですね…。
http://oracle.se-free.com/
http://www.1keydata.com/jp/sql/sql-intersect.php
http://www.techscore.com/tech/sql/index.html/

あと上記のサイトみてた時にフリーランスについてまとめてたサイトがありました。
http://www.se-free.com/

多分下記の形なんだろうけど、入れ子(ネスト)を4つ位してたから謎かった。。
服問い合わせと表の名称変更を組み合わせた形で、SELECTとかUnionした結果を結果に表示する感じっす。
赤、緑、紫で分けた部分で1固まりって捉えればイメージ付きやすいと思います。
見てすぐ理解できなかったら解体あるのみ!(*^^)/
http://www.mitene.or.jp/~rnk/TIPS_ORCL_SELECT3.htm
——————————————————————
> SELECT D01.金額 AS 売上1日 , D02.金額 AS 売上2日 , D03.金額 AS 売上3日
2 FROM

3 (
4 SELECT SUM(TD.売上数量 * TM.売上単価) AS 金額
5 FROM TT_売上 TU , TT_売上明細 TD , TM_商品 TM
6 WHERE TU.売上番号 = TD.売上番号
7 AND TD.商品コード = TM.商品コード
8 AND TU.売上日 = TO_DATE(’2002/11/01′)
9 ) D01,
10 (
11 SELECT SUM(TD.売上数量 * TM.売上単価) AS 金額
12 FROM TT_売上 TU , TT_売上明細 TD , TM_商品 TM
13 WHERE TU.売上番号 = TD.売上番号
14 AND TD.商品コード = TM.商品コード
15 AND TU.売上日 = TO_DATE(’2002/11/02′)
16 ) D02,
17 (
18 SELECT SUM(TD.売上数量 * TM.売上単価) AS 金額
19 FROM TT_売上 TU , TT_売上明細 TD , TM_商品 TM
20 WHERE TU.売上番号 = TD.売上番号
21 AND TD.商品コード = TM.商品コード
22 AND TU.売上日 = TO_DATE(’2002/11/03′)
23 ) D03

24 ;
——————————————————————

ファイル読み込み@Java

身体がだるだるですわ。
先週の金曜に肉離れして爺っす。

ソース書くのでyntaxHighlighter Evolved入れてみました。
リンク先の説明にもありますが、設定画面は日本語なので扱いやすいですねw
ひとまずソースを目立たせるためEmacsに変えました。
http://netaone.com/wp/syntaxhighlighter-evolved/

/***************************************
* ファイル読み込み+書き込み
**************************************/
package t2;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class T3 {
public static void main(String[] args) {
String path = "../test.txt";

try {
//ファイルオブジェクト生成
File file = new File(path);

//ファイルパスを表示
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());

//ファイル有無チェック
if(!file.exists()){
System.out.println("ファイルがありません");
System.exit(1);
}

String str;
//ファイルを開く
BufferedReader br = new BufferedReader(new FileReader(file));

//開いたファイルを読み終わるまで実行
while((str = br.readLine()) != null){
System.out.println(str);
}
//ストリームを閉じる
br.close();
} catch (FileNotFoundException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
}

——–実行結果————————
..\test.txt
C:\workspace2\java2\..\test.txt
C:\workspace2\test.txt
test
a
b
—————————————–

とりあえず何が言いたいかだけ。
getCanonicalPathを使わないとfileオブジェクト自体は”相対パス”を認識してくれるが、
画面にパスを表示する際はString型pathに格納したものがそのまま表示されます。

・・・まぁ前提条件として、
現場では相対パスなんて使わないですけどね。

カレントパスor絶対パスになります。
絶対パスはローカルと本番で同じパスにファイルがおけるかが鍵ですね。

Antで読み込むファイルも一式にするならカレントパスじゃないと
プロジェクトでサーバ共有してる際はローカルで使わなそうなHドライブとかKドライブが割り当てられ
実行エラーになるので要注意です(静的コンテンツは別途上げたりしてますが)

#前の現場ではWeblogic(Tomcatに似て非なるもの)使うとAntでZip化したものをデプロイしてました。

http://www.atmarkit.co.jp/ait/articles/0301/16/news002.html

#今は糞古い機能だらけなので絶対パス使ってます。

次はCSVの入出力かなー。