大佬教程收集整理的这篇文章主要介绍了在Spring 3之前注入Hibernate会话的最佳方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在Spring参考建议这种用法:
public class ProductDaoImpl implements ProductDao {
private SessionFactory sessionFactory;
public voID setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Collection loadProductsBycategory(String category) {
return this.sessionFactory.getCurrentSession()
.createquery(
"from test.Product product where product.category=?")
.setParameter(0, category)
.List();
}
}
这样,你的类就不会对Spring有任何依赖,你只需使用普通的Hibernate。
@Respository("productDao")
public class ProductDaoImpl implements ProductDao {
@autowired
private SessionFactory sessionFactory;
public Collection loadProductsBycategory(String category) {
return this.sessionFactory.getCurrentSession()
.createquery(
"from test.Product product where product.category=?")
.setParameter(0, category)
.List();
}
}
XML文件
<beans>
<bean ID="myData@R_874_9016@e" class="org.apache.commons.dbcp.basicdata@R_874_9016@e" destroy-method="close">
<property name="driverClassname" value="org.HSQLdb.jdbcDriver"/>
<property name="url" value="jdbc:HSQLdb:HSQL://localhost:9001"/>
<property name="username" value="sa"/>
<property name="password" value=""/>
</bean>
<bean ID="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionfactorybean">
<property name="data@R_874_9016@e" ref="myData@R_874_9016@e"/>
<property name="mapPingresources">
<List>
<value>product.hbm.xml</value>
</List>
</property>
<property name="hibernatePropertIEs">
<value>
hibernate.dialect=org.hibernate.dialect.HSQLDialect
</value>
</property>
</bean>
</beans>
我不确定使用Spring3将Hibernate的会话实例注入DAO类的最佳方法是什么。我没有为此使用Spring的Hibernate Template支持,所以这是我在DAO类中拥有的代码。
public void setSessionFactory(SessionFactory sessionFactory){
this.sessionFactory=sessionFactory;
}
public SessionFactory getSessionFactory(){
log.info("Returning a refrence to the session instance");
if(sessionFactory==null){
log.error("Not able to find any associated session");
throw new RuntimeException("Not able to find any associated session");
}
return sessionFactory;
}
下面是将会话注入此方法的代码
<bean id="genericSessionFactory" class="HibernateSessionFactory"
factory-method="getSessionfactory" scope="prototype/>
我不确定这是否是进行SessionFactory注入的最佳方法,因为我们不想在项目中使用Spring模板。因此,任何其他改进建议都将很有帮助。
以上是大佬教程为你收集整理的在Spring 3之前注入Hibernate会话的最佳方法全部内容,希望文章能够帮你解决在Spring 3之前注入Hibernate会话的最佳方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。