gpt4 book ai didi

java - 为 hibernate 和@Transactional 配置 spring 数据源

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:36:20 29 4
gpt4 key购买 nike

此时我正在使用带有@Transactional 注释的DriverManagerDataSource 来管理事务。但是所有事务都非常非常慢,可能是因为数据源每次都打开和关闭与数据库的连接。

我应该使用什么数据源来加快交易速度?

最佳答案

我在我的应用程序中结合使用了两种方法。第一个是 c3p0 连接池,它几乎与 chkal sugested 相同的解决方案。第二种方法是使用 Spring lazyConnectionDataSourceProxy,它创建延迟加载代理,仅当您访问数据库时才加载连接。这是非常有用的,当你有二级缓存并且你只读取缓存数据和查询时 - 数据库不会被命中,你不需要获取连接(这是非常昂贵的)。

<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- Pool properties -->
<property name="minPoolSize" value="5" />
<property name="initialPoolSize" value="10" />
<property name="maxPoolSize" value="50" />
<property name="maxStatements" value="50" />
<property name="idleConnectionTestPeriod" value="120" />
<property name="maxIdleTime" value="1200" />

</bean>

<bean name="lazyConnectionDataSourceProxy" class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
<property name="targetDataSource" ref="dataSource" />
</bean>

关于java - 为 hibernate 和@Transactional 配置 spring 数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4190062/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com