Blog
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/>
が使えるのが便利だってだけだけど・・・
ってとりあえず、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
[ 23:34 ]
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でしかコード組めない新人なんて嫌なんですが・・・
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
[ 10:43 ]
2005/12/08のBlog
[ 21:33 ]
[ java ]
修正があります
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());
大体こんな感じです。
感想求む。
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をどうにかするっててもある。
とか
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をどうにかするっててもある。