当前位置: 首页 > 面试题库 >

Spring 3.1.0,Hibernate 4.0.1.Final和MySQL 5.1应该使用什么池化数据源?

吴宏扬
2023-03-14
问题内容

我正在使用Spring 3.1.0.RELEASE,Hibernate 4.0.1.Final和MySQL
5.1。我应该使用什么池化数据源?我目前正在使用(应用程序上下文文件中的代码段)…

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName">
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property name="url">
        <value>jdbc:mysql://localhost:3306/myproj</value>
    </property>
    <property name="username">
        <value>myproj</value>
    </property>
    <property name="password">
        <value>password</value>
    </property>
</bean>

但这不是汇总的数据源,而是在每个调用上创建JDBC连接。我以前有这个Hibernate配置(hibernate.cfg.xml)…

<hibernate-configuration>
<session-factory>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/myproj</property>
    <property name="hibernate.connection.username">myproj</property>
    <property name="hibernate.connection.password">password</property>
    <property name="hibernate.connection.pool_size">10</property>
    <property name="show_sql">true</property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    ...

但是由于Spring 3.1.0中的一个错误,在配置会话工厂bean时,我无法使用hibernate.cfg.xml文件(我试图这样做-
来自Spring应用程序上下文文件的代码段…)

<bean class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" id="sessionFactory">
    <property name="configLocation"> 
        <value>classpath:hibernate.cfg.xml</value> 
    </property>

问题答案:

您可以使用Apache DBCP,这将取代以下内容:

<bean id="dataSource" 
    class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
    <property name="maxActive" value="10"/> 
    <property name="minIdle" value="5"/> 
    <!-- SELECT 1 is a simple query that returns 1 row in MySQL -->
    <property name="validationQuery" value="SELECT 1"/> 
</bean>

注意事项

  • 您可以配置最大连接数。
  • 您可以配置空闲连接的最小数量。
  • 将执行以验证连接的查询仍然有效。

存在更多选项来配置验证发生的时间。



 类似资料:
  • 我正在创建一个矿池(区块链的事情)。事情是我决定使用插件https://github.com/zone117x/node-open-mining-portal这是写在node.js和使用redis数据库节省股份,付款和诸如此类的东西。我的问题如下? 1) 我应该使用redis数据库还是将代码传输到mysql? 我的假设是:Redis速度非常快,但我担心数据丢失。如您所知,它首先将信息保存在内存中,

  • 问题内容: 我发现了一些参考(例如),它们建议尽可能多地使用它,我想知道这有多重要。这主要是在方法参数和局部变量的上下文中,而不是最终方法或类。对于常量,这很明显。 一方面,编译器可以进行一些优化,使程序员的意图更加清晰。另一方面,它增加了冗长性,并且优化可能微不足道。 我需要努力记住的东西吗? 问题答案: 最终字段-将字段标记为最终字段会强制它们在构造结束时进行设置,从而使该字段引用不变。这样可

  • 问题内容: 我知道他们两个都禁用了Nagle的算法。 我什么时候应该/不应该使用它们中的每一个? 问题答案: 首先,不是所有人都禁用Nagle的算法。 Nagle的算法用于减少有线中更多的小型网络数据包。该算法是:如果数据小于限制(通常是MSS),请等待直到收到先前发送的数据包的ACK,同时累积用户的数据。然后发送累积的数据。 这将对telnet等应用程序有所帮​​助。但是,在发送流数据时,等待A

  • 问题内容: 在该类中,有两个字符串,和。 有什么不同?我什么时候应该使用另一个? 问题答案: 如果你的意思是和则: 用于在文件路径列表中分隔各个文件路径。考虑在上的环境变量。您使用a分隔文件路径,因此在上将是;。 是或用于拆分到特定文件的路径。例如在上,或

  • 问题内容: 我已经掌握了语法,但是我想知道是否有人可以提供说明性的用例,其中数据库同义词非常有用。 问题答案: 测试时非常适合登台模拟表。例如,如果源表包含数百万条记录,并且您想测试一小部分数据,则可以使用同义词将源表重定向到您控制的较小表中,从而可以进行各种方案。 这样,您可以在不影响源表的情况下更新/删除模拟表中的数据。准备使用源表时,您需要做的就是重定向同义词。

  • 我正在编写一个创建序列并保存它们的Java程序。我正在寻找最合适的数据结构来保存序列。我事先不知道序列的长度,也不知道我会有多少个序列,序列可以有不同的长度。 我应该使用什么结构?