手軽にで便利なS2Dao

仕事でHibernateより手軽なORマッパーを探していたら、
SeasarS2Daoがあった、Seasarは日本で流行ってるだけで世界的に見て
マイナーだと思って軽視してたが、凄い!手軽さだけならHibernateより
S2Daoのほうが上ですよ!

ってことで早速、サンプルをサクサクと作ってみました。
参考にしたのはThinkITの「O/Rマッパーの利用」とSeasarのサイトです。

いじってみた

とりあえず、ThinkITの記事を元に動かします。
そのあと、手を加えたのがDAOに価格で検索できるメソッドを追加してみました。

VideoDao.java
package hoge;

import java.util.List;

public interface VideoDao {

	public Class BEAN = Video.class;

	public int update(Video video);

	public int insert(Video video);

	public int delete(Video video);

	public List findAll();

	public static final String findPrice_ARGS = "from,to";

	public List findPrice(Integer from, Integer to);
}
VideoDao_findPrice.sql

VideoDao.classと同じところに置く

SELECT * FROM video WHERE price BETWEEN /*from*/1000 AND /*to*/5000
Main.java
package hoge;

import java.util.List;

import org.seasar.framework.container.S2Container;
import org.seasar.framework.container.factory.S2ContainerFactory;

public class Main {

	public static void main(String[] args) {

		S2Container container = S2ContainerFactory.create("dao.dicon");
		VideoDao dao = (VideoDao) container.getComponent(VideoDao.class);

		List videos = dao.findPrice(new Integer(2000),new Integer(5000));
		for (int i = 0; i < videos.size(); i++) {
			System.out.println(videos.get(i));
		}
	}
}