要提供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