ニックネーム:   パスワード:
| MyDoblogトップ | Doblogポータル | Doblogガイド | ユーザ登録 | 使い方 | よくある質問 | ツールバー | サポート |
ぐだぐだ
Blog
[ 総Blog数:121件 ] [ このMyDoblogをブックマークする ] [ RSS0.91   RSS1.0   RSS2.0 ] [ ATOM ]
2006/06/29のBlog
[ 13:32 ] [ java ]
DatabaseTestCase
ってとりあえず、setUpでCLEAN_INSERT
tearDownでNONEがデフォルト
これに関しては
protected DatabaseOperation getSetUpOperation()
throws Exception
protected DatabaseOperation getTearDownOperation()
throws Exception

でそれぞれ指定してある。
これをそれぞれのメソッドで呼び出してる、なのでsetUp無視というよりは
ここをオーバーライドでもいいかも。

なのでsuper.setUp();
元データのバックアップ
ってやってるとバックアップした結果が初期データではまる。

#ちなみにIDataSetをインスタンス変数で保持しておいて、
tearDownで突っ込むってやるとなぜか戻せない。
不明なので、しょうがなく
//インスタンス変数
File file;
//setUpメソッド内
file = File.createTempFile("backup","xml");
XmlDataSet.write(backUp, new FileOutputStream(file));

//tearDown内
CLEAN_INSERT
//終了後に消す
file.deleteOnExit();

ってしている。なんかうまい方法はないものか・・・

読み込んだXMLの値の置換
ReplacementDataSet#addReplacementObject

フラットXML
FlatXmlDataSet
フラットじゃないXML
XmlDataSet

比較したくないカラムの除外
ITable compositTable = new CompositeTable(expectTable
.getTableMetaData(), resultTable);
とすると、期待xmlに書いていないカラムは対象外とした結果Tableが出来るので
それを期待テーブルと
assertEquals(Itable,Itable);
で比較すればよい。

new SortedTable(ITable)
とすると、ソートが出来るので順番が怪しい場合には使える。

外部キーとかどうすんだよー(私訳)
How to automatically orders tables according their foreign keys?

ってのがFAQにあった。(英語出来ないので違うかも)
IDatabaseConnection conn = new DatabaseConnection(jdbcConn);

ITableFilter filter = new DatabaseSequenceFilter(conn);
IDataSet dataset = new FilteredDataSet(filter,
conn.createDataSet());

FlatXmlDataSet.write(dataset, new File(fileName));
って書いてあるけど
手元に試せるようなテーブルがないのでしばらく放置。
(必要になるまで放置)
http://dbunit.sourceforge.net/faq.html

あとは大抵の情報はネットで書いてある・・・はず。
ちなみに私はFlatじゃない方派なんだけど
flatの情報の方が多いなぁ・・・
<null/>
が使えるのが便利だってだけだけど・・・
2006/03/03のBlog
JISAutoDetectでエラー発生。
java.lang.ClassCastException

昔動いてただけにかなりびっくりしたら
バグなんですね。(正確にはバグじゃないってなってるらしいけど)
まぁJISAutoDetectなんていまじゃ使わないんですが・・・

というかですね。
メールアプリではISO2022JPとMS932でコードが違う文字位テストをしろと。
普通に~
とかだけでいいですから・・・
http://www.atmarkit.co.jp/fjava/rensai3/mojibake01/mojibake01.html
http://java-house.jp/ml/archive/j-h-b/014452.html

ってちょっとだけ泣き言。
結局どういう対応がいいんですかね?
わたしとしては全部MS932側のコードに変換しちゃうんだけど・・・
そういやJ2SE5だと少しその辺変わるんだっけ?
よくわからんのであいまいですが。

っつーかまだまだTigerはいいべさなー
っておもってたっけそのうちMustang?だっけ?
なんかペース速いな~
EODってそんな重要ですか?

Tigerでしかコード組めない新人なんて嫌なんですが・・・
2005/12/13のBlog
DBとの同期化とってるけど、
ビジネスロジック実行中に別プロセスからデータ更新されたらどうすんのさ?
って疑問。

IBM

悲観的ロック(ペシミスティック・ロック)と楽観的ロック(オプティミスティック・ロック)
ってあれだなHibernateでも聞いた単語だね。
そりゃ普通に考えればそういうことかー
って気もしますね。
というわけでオプティミスティック・コンカレンシー・コントロールについてJ2EEコンテナごとに色々調べてみると面白いかもしれません。

Borlandなかなか挑発的ですてきです。
ここも勉強になりました。すっかり忘れてたEJBの世界を思い出すのに
2005/12/08のBlog
修正があります
http://www.doblog.com/weblog/myblog/1571/2362061#2362061

YahooJapan用のAPIが公開された。
どうやらRESTを使用しているとの事で、
SOAPは使わなくていいらしい。
なのでクエリストリングを作ればいいと。

というわけでAPI作ってみた。(そのうちちゃんとした人が作ってくれるだろうけど・・・)
大枠としては
・クエリの作成用
がメインで、おまけ程度に結果のBeanへのmappingと
URL接続のUtilといった構成。

yahooAPI.zip
結果のBeanへのマッピングには
JaxMe2の0.5が必要です。
http://ws.apache.org/jaxme/

javaは1.4.2_07です。

*Video/Imageに関してFileSizeがintegerなのに○○KBとかで返ってくるため、
自動生成だとバインディングに失敗しましたのでBeanはStringに手動で変更。
面倒くさい。

詳しくはReadMe見てください。

使用法抜粋
WebQuery query = new WebQuery();
query.setApplId(applId);
query.setQuery("構造計算書偽造 千葉");
query.setResultCount(1);

こんな感じでクエリオブジェクトに値つめる。

String string = query.createQueryString();

つめたら文字列として受け取る(URLEncode済み)

URLConnectionBuilder builder = new URLConnectionBuilder(string, proxyHost, proxyPort);

builder.setInstanceFollowRedirects(false);
builder.setRequestMethod("GET");
builder.setContentType("text/xml");

URLConnectionに設定していく

HttpURLConnection con = builder.createConnection();

結果Beanを取得する。
ResultSet rs = UnMarshalling.createWebResultSet(con.getInputStream());

大体こんな感じです。

感想求む。
2005/11/21のBlog
[ 22:54 ] [ java ]
javaMail
とか
commons Email
とか使ってみてる。
commons-Emailは特にいい感じだけど。
日本語文字化けが今のところ解消できず。

javaMailに関しては
直感的じゃない。
特に認証に手間取る。
props.put("mail.smtp.auth", "true" );
Session session=Session.getDefaultInstance(props,new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication( "ユーザ", "パスワード");
}
});

が必要みたいです。
んでそれぞれ値を設定するところにISO-2022-JPも指定すればいいだけ。

Emailのほうは
Email.setCharset();
をつかってもどうにもならない・・・
us-asciiになっちゃうんだよね。
指定箇所が違うのか・・・
なんにせよ時間見つけてソースでも見てみないと駄目かも。
直感的ですごい使いやすいんだけどね。
html形式で送っちゃえばどうにでも出来そうだけど・・・

追記
email.setContent("にほんご","text/plain; charset=Shift_JIS");
でどうにかなった。
ちなみにSimpleEmailのsetMsgをどうにかするっててもある。