要提供JDBC连接会话,你需要的ConnectionProvider的实现。
Bu默认,Hibernate使用DatasourceConnectionProvider
,它从JNDI获取DataSource
实例。
要使用自定义DataSource
实例,请使用InjectedDataSourceConnectionProvider
,并将DataSource
实例注入其中。
上有InjectedDataSourceConnectionProvider
注意待办事项: 的setDataSource(javax.sql.DataSource中) 前必须 配置(java.util.Properties)被调用。
TODO:找不到 setDataSource实际上被调用。 不能这只是通过 配置???
按照说明,从configure()
方法调用setDataSource()
方法。
public class CustomConnectionProvider extends InjectedDataSourceConnectionProvider {
@Override
public void configure(Properties props) throws HibernateException {
org.apache.commons.dbcp.BasicDataSource dataSource = new BasicDataSource();
org.apache.commons.beanutils.BeanUtils.populate(dataSource, props);
setDataSource(dataSource);
super.configure(props);
}
}
您还可以扩展UserSuppliedConnectionProvider。
根据的ConnectionProvider
合同
执行者应该提供公共 默认构造函数。
如果通过配置实例设置自定义的ConnectionProvider,Hibernate将调用此构造函数。
Configuration cfg = new Configuration();
Properties props = new Properties();
props.put(Environment.CONNECTION_PROVIDER, InjectedDataSourceConnectionProvider.class.getName());
cfg.addProperties(props);
你有没有指向示例配置的任何链接? – newbie 2010-12-10 08:48:32
@newbie:你的意思是像文档? http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/session-configuration.html – skaffman 2010-12-10 08:49:54
我的意思是我该如何使用LocalSessionFactoryBean – newbie 2010-12-10 08:50:29