在java方面,一切工作正常,但是当我查看V$SESSION特殊的oracle表,以及记录任何登录或注销操作的日志表时,这是一场灾难......每个查询都会执行登录/注销操作。所以这是我的问题:有没有办法配置 Spring 与数据库有一个唯一的连接,或者我的连接方式有问题吗?
在这里,我的数据源 bean 配置:
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>oracle.jdbc.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@nanssunorad:1523:nanorad3</value>
</property>
<property name="username">
<value>foo</value>
</property>
<property name="password">
<value>bar</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>hibernateESign.cfg.xml</value>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean id="IXalVaParametresDAO" class="fr.asterion.archivage.hibernate.XalVaParametresDAO">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
在我的应用程序中,为了获取数据库参数的 DAO,我做了一个
IXalVaParametresDAO parametreDAO = (IXalVaParametresDAO) ConfigApplication
.getApplicationContext(this.log).getBean("IXalVaParametresDAO");
最后,在我的 DAO 课程中,我做了这样的事情:
public class XalVaParametresDAO implements IXalVaParametresDAO
{
private HibernateTemplate hibernateTemplate;
public void setSessionFactory(SessionFactory sessionFactory)
{
this.hibernateTemplate = new HibernateTemplate(sessionFactory);
}
public List<XalVaParametres> findAll()
{
log.debug("finding all XalVaParametres instances");
try
{
String queryString = "from XalVaParametres";
List lst = this.hibernateTemplate.find(queryString);
在我的应用程序中,每次调用“查找”方法时,它都会执行数据库登录/注销。我猜这个问题在另一个数据库上也是一样的。我做的事情正确吗?我猜不会。我希望 HibernateTemplate 能够一劳永逸地创建并保持会话打开。那可能吗 ?
感谢您的想法
Manux
使用池化DataSource
, e.g. Apache 共享/DBCP http://commons.apache.org/dbcp/'s BasicDataSource http://commons.apache.org/dbcp/api-1.4/index.html?org/apache/commons/dbcp/BasicDataSource.html
参考:
- Spring JDBC > 控制数据库连接 http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html#jdbc-connections
- Spring ORM > Hibernate > Spring 中的 SessionFactory 设置
容器 http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/orm.html#orm-session-factory-setup
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)