2010-01-01から1年間の記事一覧

List の Diff

java.util.List のDiff の準備ができたのでいよいよDiff実行するものを作成した。 先日投稿した http://blog.zaq.ne.jp/oboe2uran/article/372/ 準備を踏まえて Google collection Library の com.google.common.collect.MapDifference を利用する。 Diff実…

List のDiff を行う準備

Google Collection Library で見つけたMapの比較にはとても重宝している http://blog.zaq.ne.jp/oboe2uran/article/352/ そこで、List の Diff 結果を求めるのはどうであろうと考えた。 準備として Google Collection Library で見つけた com.google.common.…

MyBatis

ここ最近iBATISの仕事をしてなかったせいか、びっくりすることが起きていたのをようやく気が付いた。 Apache プロジェクトに属していたiBATIS が Google code project になり、名前を変えている。 http://www.mybatis.org/

Beanの入れ替え

指定するフィールドだけ、Bean の値を入れ替えたい。 この要求が頻繁に発生したら、、、 public static <T> T replaceBean(T t1,T t2,String...fieldnames) throws Exception{ if (fieldnames.length==0) return t1; Class cls = t1.getClass(); for(String s :</t>…

iBATIS3 と Spring

Google guice に出会ってから Spring を触る機会が減った。 iBATIS3 GA版が出る前から、iBATIS3 と Spring 連携は既に論じられてる。 http://jira.springframework.org/browse/SPR-5991 このサイトを覗くのが良いのかもしれない。 この中で紹介された public…

Spring2.5 の@Resource

Spring2.5 のメモを書くのは情けないが、仕事で使わなくてはならないので、不本意でも書きます。 @Resource や、@Autowired を書いてsetterの記述を無くする例。 bean生成のコンフィグXMLで、<context:annotation-config/>を書くことである。 </context:annotation-config/>

t3プロトコル実行

t3プロトコルでWebLogicサーバ上のサービスを実行したりするクライアントを 作成するケースは、ありそうでなかった。 バッチのために、わざわざ稼働中のWebサーバを使うという発想がないだろうし、 稼動中というリスクもあるからだろう。 コンテキストl…

JSF画面で入力制御の例

JSF画面データテーブルの表を表示して入力を radio ボタンで制御する方法

Windows7 で、JavaService.exe

Windows7 で、JavaService.exe は動くか? 答は、Yes である。ただし普通に実行しては次のようにエラーになる。 UranService という名前でサービス登録しようとすると、 Error attempting to install UranService service アクセスが拒否されました。 Window…

Oracle ADFを使う側が悪いのか、

例外発生時、Oracle ADF には、もっと判りやすいメッセージを出して欲しいものだ。 jspx に書くrender属性を例えば、 <trh:tableLayout rendered="#{entity_foo.renderNaviButton}"> という記述に対して、以下のようにする。 エンティティ Bean // entity_foo が指す JavaBean でレンダリング private boolean renderNavi</trh:tablelayout>…

static イニシャライズ

static イニシャライズのコードは組むことは少ないが、 自クラスのメソッドMap を用意すると応用がありそうだ。 import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; public class Foo{ private String color; private stati…

Excel2007 クイックツールバーの設定

Excel 2003 で設定をしていたキー操作だけで、セルの結合分割を Excel 2007 で行うには。。。 Excel 2003 では、以前書いたとおり。 http://blog.zaq.ne.jp/oboe2uran/article/134/ Excel 2007 では、 一番上のクイックツールバーと称されるところに、設定し…

iBATIS3 更新処理をキューで。。。

iBATIS3 GA版が出てた。 そこで思い立ったのが、、、 iBATIS2 で前はキュー処理化することを考えてた。 http://blog.zaq.ne.jp/oboe2uran/article/321/ ならば、iBATIS3 でも考えてみるべきと思い書いてみた。 import java.sql.SQLException; import java.ut…

Windows7 sc.exe

Windows7 搭載PCを初めて買い、家に届いた。気になってたのが、サービスの管理である。 XP と違って見つけにくい。 「コントロールパネル」→「システムセキュリティ」→「管理ツール」 で、「サービス」のショートカットを実行する。 コマンドプロンプトで…

複数の@Assisted 付与は、

@Assisted 2つ以上付与した FactoryProvider の利用は、 @Assisted 付与時に、@Named でインジェクト対象を限定したように、 ユニークな文字列を指定する。 Names.named(String s) メソッドのようにコンフィグレーションで 約束するのではなく、FactoryProv…

FactoryProvider

guice-assistedinject-2.0.jar に存在する FactoryProvider を使うと、 Injector から getInstance 実行後、FactoryProvider で注入したファクトリ実行で、 任意の引数を与えることができる。Injector のバインド定義で目的の 生成に必要なインスタンス注入…

iBATIS3 と Google guice

iBATIS3 と Google guice を組み合わせたとき、 SqlSession をインジェクト対象にすると罠にはまるようにバグを 埋め込みやすくなる。これは、以下2点から言える。 (1) close() を実行した SqlSession インスタンスは使えない。 Google guice のInjector で…

Eclipse でアクセス制限エラーが出たら

Java ソース中、import 文に次のようなエラーが発生、 「・・・は、必須ライブラリ jdk1.6.xx/jre/lib/rt.jar で制限されているためアクセスできません。」 こういう場合、次の対処を。 Javaのビルドパスで、JREシステムライブラリのツリーを開いて、アクセ…

MapMaker

Google collections Library の MapMaker は多くの課題を解決してくれる気がする。 ConcurrentMap<String,String> map = new MapMaker() .concurrencyLevel(8) .expiration(20,TimeUnit.SECONDS) .makeMap(); とすれば、mapに格納したものは、20秒で消滅、複数スレッド同</string,string>…

Map の比較

Mapの比較、Google Collection Library には、こんな便利なものもある。 Map<String,Integer> map1 = new HashMap<String,Integer>(); map1.put("a",1); map1.put("b",2); map1.put("c",3); Map<String,Integer> map2 = new HashMap<String,Integer>(); map2.put("A",10); map2.put("b",2); map2.put("c",30); map2.put("d",40</string,integer></string,integer></string,integer></string,integer>…

iBATIS3 の Transaction

iBATIS3 beta10 を試して判ったこと。 トランザクションを使う場合にBatchSQL では、更新はできない。 org.apache.ibatis.transaction.Transaction インターフェースを見てわかるとおり getConnection() commit() rollback() close() のメソッドあるだけで、…

ImmutableMapの動作

Google collection LibraryのImmutableMapをどう使いこなすか? Mapを戻り値とするメソッド内で生成することだろう。とにかく動作を見てみようと思う。 Map<String,Integer> map = new ImmutableMap.Builder<String,Integer>() .put("a",10) .put("b",20) .build(); for(String key : map.key</string,integer></string,integer>…

MySQLでのテーブル情報参照

テーブルの情報を取り出すのに、Oracle では、 USER_TAB_COLUMNS や、USER_TABLES などを使うが、 MySQL では、、、 show tables で、table_name カラム情報を見たければ、、 SELECT * FROM information_schema.columns WHERE table_name = 'テーブル名' テ…

挿入時制限付きコレクション(2)

挿入時制限付きコレクション(1)の続き、挿入時、applyメソッドの戻り値 boolean に沿って コレクションの生成の実装は以下のとおり。 import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; import java.util.HashMap;…

挿入時制限付きコレクション(1)

挿入時制限付きコレクション生成の提供を整理することにした。 public interface ListPredicate<E>{ public boolean apply(E e); } → ArrayList 生成に使用する Predicate public interface MapPredicate<K,V>{ public boolean apply(K k,V v); } → HashMap 生成に使</k,v></e>…

iBATIS動的SQLの$文字

iBATIS のSQL記述でテーブル名やORDER BY句などを動的にする場合、 $ 文字で変数を書く! つまりシングルクォート括りを回避する。 SQLMap XML に書く SQL は、例えば、、、 iBATIS 2 系では、 SELECT * FROM $tblname$ WHERE price = #price# ORDER BY sale…

メインクラスの為に

非Windows で動作するJava main() クラスの為に、補助するものを用意してみた。 困ったことに、Eclipse での javaw 実行では、SIGTERM シグナル送信して受け取らせることができない。 つまり Runtime.getRuntime().addShutdownHook で登録したスレッドの動作…

Collections2.filterの注意

Google Collection Library のCollection2 filter で注意すべきは、filter 機能が動作しているタイミングである。 filter の戻り値である Collection のメソッド実行時に働くことに気をつけなければならない。 これは、次のようなサンプルコードを様々に動か…

Predicate 見直し

以前、Google collection Library に感動したことを下記の投稿のとおり書いたが、 http://blog.zaq.ne.jp/oboe2uran/article/258/ ここで書いた、Collections2 の filter や、transform の実行は、対象 Collection に値を 追加する前に記述しても良い!!(…

スクリプトでクラスパス設定

JVM起動等、スクリプト中でCLASSPATH設定をfor文で書く場合、環境によってまとめると。 --------------- Windows ----------------- set PROJECT_HOME=C:\AAA set CLASSPATH=%PROJECT_HOME%\resource for %%i in (%PROJECT_HOME%\lib\*.jar) do call :setpat…