gpt4 book ai didi

java - 如何使jdbc mysql数据库连接生效

转载 作者:行者123 更新时间:2023-11-29 01:54:37 26 4
gpt4 key购买 nike

下面是我的 hibernate.xml 文件,对于 sql 中的任何查询,我将使用 session 工厂进行查询,但在此我使用属性名称 dataSource,它引用数据库连接,因此对于我调用的每个查询 session 工厂,并且对于每次调用,它都调用数据源并建立一个新连接,而不是我只想建立一个连接并为每个请求进行多个查询是否可能

我正在使用 hibernate 进行 sql 查询

我正在使用下面的 hibernate.xml,因为我从 http://www.mkyong.com/spring/maven-spring-hibernate-mysql-example/ 中了解到

hibernate .xml:

<property name="dataSource">
<ref bean="dataSource"/>
</property>

<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>

<property name="mappingResources">
<list>
<value>resources/database/Token.xml</value>
</list>
</property>

</bean>

数据源.xml:

<bean id="dataSource" 
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/get"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
<property name="initialSize" value="3"/>
<property name="minPoolSize" value="1" />
<property name="maxPoolSize" value="3" />
</bean>

</beans>

更新:我已经创建了我的代码连接池,但是如何让它在应用程序开始时只打开一个连接并为每个请求使用相同的连接

如您所见,每次调用 session 工厂时,它都会调用数据源并建立连接,我想停止它

最佳答案

两个注意事项。首先,您可以在一个 xml 文件中配置所有 bean,不需要为 hibernate 和 spring 保留不同的文件(Spring 一个就足够了)。

其次:您可以使用支持池连接和更多配置的数据源,如C3P0 .如何声明它的一个例子是:

<bean id="yourDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/get" />
<property name="user" value="username" />
<property name="password" value="password" />
<property name="minPoolSize" value="1" />
<property name="maxPoolSize" value="3" />
<property name="preferredTestQuery">
<value>select null from dual</value>
</property>
<property name="testConnectionOnCheckin">
<value>true</value>
</property>
<property name="idleConnectionTestPeriod">
<value>1000</value>
</property>
</bean>

关于java - 如何使jdbc mysql数据库连接生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32610224/

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