Spring2.0与Hibernate3整合 - J2EE之巅 - BlogJava

来源:百度文库 编辑:神马文学网 时间:2024/05/01 22:01:02
蔡超
北京天融信,软件架构师
SUN certified Enterprise Architect
Microsoft certified Solution Developer
IBM certified RUP Specialist
联系方式 :cai_chao@topsec.com.cn,chaocai2001@yahoo.com.cn
010-82776427
Sping2 及 Hibernate3 都是如今流行的请量级框架,如何将两者进行整合呢,目前很多资料讨论的都是老版本的整合方式,下面给出这两种框架的新版整合方式。
1 配置数据源


com.microsoft.jdbc.sqlserver.SQLServerDriver


jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=webguide


sa


talent


2 配置 Hibernate SessionFactory




Greeting.hbm.xml




org.hibernate.dialect.SQLServerDialect
true
update






3 配置事务


PROPAGATION_REQUIRED




















4 使用 Hibernate 实体
方法一:采用 AOP 的方式 package hibernate.integration.entity;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.SessionFactoryUtils;
/**
* @author chao cai
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class GreetingLogic3 implements IGreetingLogic{
private SessionFactory sessionFactory;
/* (non-Javadoc)
* @see hibernate.integration.entity.IGreetingLogic#loadGreeting(java.lang.Integer)
*/
public Greeting loadGreeting(Integer id) {
Session session = sessionFactory.getCurrentSession();
Greeting greeting=(Greeting) session.get(Greeting.class,id);
return greeting;
}
/**
* @return Returns the sessionFactory.
*/
public SessionFactory getSessionFactory() {
return sessionFactory;
}
/**
* @param sessionFactory The sessionFactory to set.
*/
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
}
代码样例:
package hibernate.integration.entity;
/**
* @author chao cai
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public interface IGreetingLogic {
public Greeting loadGreeting(Integer id);
}
配置


hibernate.integration.entity.IGreetingLogic



txInterceptor
myHibernateInterceptor






客户端代码:
AbstractApplicationContext context=new FileSystemXmlApplicationContext("spring-hibernate.xml");
IGreetingLogic gl=(IGreetingLogic) context.getBean("myProductDao");
greeting=gl.loadGreeting(new Integer(1));
System.out.println(greeting.getGreeting());
方法二:采用 HibernateDaoSupport
代码:
package hibernate.integration.entity;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.SessionFactoryUtils;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* @author Chao Cai
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class GreetingLogic extends HibernateDaoSupport implements IGreetingLogic{
public Greeting loadGreeting(Integer id){
Session session = SessionFactoryUtils.getSession(getSessionFactory(), false);
Greeting greeting=(Greeting) session.get(Greeting.class,id);
return greeting;
}
}





posted on 2007-02-05 17:15超越巅峰 阅读(520)评论(4)  编辑 收藏引用网摘 所属分类:Java EE
360pskdocImg_0