Light-commons 加入orm模块

light-commons计划创建一个ORM通用接口层,并提供一个jdbc实现和一个hibernate实现。今天创建了接口以及Hibernate的实现。

1.DaoTemplate

HibernateDaoTemplate daoTemplate = new HibernateDaoTemplate(sessionFactory);
//与spring的 hibernateTemplate 类似
//MyPojo mypojo = (MyPojo) hibernateTemplate.get(MyPojo.class,1L);
//与spring的HibernateTemplate不同的是,这里不需要类型转换
MyPojo mypojo = daoTemplate.get(MyPojo.class,1L);

2.Dao

public class MyPojoDao extends HibernateDao<MyPojo,Long>{
  //必要的参数在构造函数里传入,而不是用set方法注入,保证thread-safe
  public MyPojoDao(HibernateDaoTemplate daoTemplate){
    super(daoTemplate);
  }
  //that's all,当然,你也可以在这里加入自己的方法。
}

...
MyPojoDao myPojoDao = new MyPojoDao(hibernateDaoTemplate);
//不需要类型转换
MyPojo myPojo = myPojoDao.get(1L);

3.DaoFactory

HibernateDaoFactory hibernateDaoFactory=new HibernateDaoFactory(sessionFactory);
//指定Entity Class, 指定 ID Class
Dao<MyPojo, Long> myPojoDao= hibernateDaoFactory.getDaoOf(MyPojo.class);
//以get方法为例
//参数仅允许 ID Class ,上面指定的是Long 型
//返回值不再需要类型转换
MyPojo mypojo = myPojoDao.get(1L);

ProjectHome:http://light-commons.googlecode.com

mavendependency:

<repositories>
		<repository>
			<id>light-commons</id>
			<url>http://light-commons.googlecode.com/svn/repository</url>
		</repository>
	</repositories>
	<dependencies>
		<dependency>
			<groupId>org.lightcommons</groupId>
			<artifactId>lightcommons</artifactId>
			<version>0.1.0-beta</version>
		</dependency>
...

orm

相关推荐