怎样在hibernate中使用数据库连接池
来源:互联网 发布:淘宝ifashion是什么 编辑:程序博客网 时间:2024/05/01 13:40
经过一个周末的折腾,终于找到了hibernate中使用数据库连接池的解决方案。
从网上google了一下,发现大致有三种可以实施的解决方案:
1、使用hibernate自带的连接池;
2、使用c3po包的连接池功能;
3、使用Proxool包的连接池功能;
第一种方案,就是在myeclipse产生的hibernate.cfg.xml中添加一个属性:
<property name="connection.pool_size">20</property>
第二种方案是:
<property name="myeclipse.connection.profile">test</property>
<property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
<property name="connection.url">jdbc:microsoft:sqlserver://localhost:1433;databasename=test</property>
<property name="connection.username">sa</property>
<property name="connection.password">123</property>
<property name="c3p0.min_size">2</property>
<property name="c3p0.max_size">10</property>
<property name="c3p0.timeout">1800</property>
<property name="c3p0.acquireRetryAttempts">4</property>
<property name="c3p0.acquireIncrement">1</property>
<property name="c3p0.idleConnectionTestPeriod">36000</property>
<property name="c3p0.initialPoolSize">2</property>
<property name="c3p0.maxPoolSize">10</property>
<property name="c3p0.maxIdleTime">1200</property>
<property name="c3p0.maxStatements">30</property>
<property name="c3p0.minPoolSize">2</property>
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
第三中方案是Proxool:
在hibernate.cfg.xml中添加:
<!-- Proxool Database connection settings -->
<property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
<property name="hibernate.proxool.pool_alias">DBPool</property>
<property name="hibernate.proxool.xml">Proxool.xml</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="show_sql">false</property>
然后再添加一个Proxool.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
<proxool>
<alias>DBPool</alias>
<driver-url>jdbc:microsoft:sqlserver://localhost:1433;databasename=test</driver-url>
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
<driver-properties>
<property name="user" value="sa"/>
<property name="password" value="123"/>
</driver-properties>
<maximum-connection-count>10</maximum-connection-count>
</proxool>
</something-else-entirely>
这个三种方案,我都可以配置成功,可是,郁闷的是,这三种方案,都比我不用连接池的数据要慢,可能是我的测试不准确吧?我只做了连续100000次的数据插入操作。
从网上google了一下,发现大致有三种可以实施的解决方案:
1、使用hibernate自带的连接池;
2、使用c3po包的连接池功能;
3、使用Proxool包的连接池功能;
第一种方案,就是在myeclipse产生的hibernate.cfg.xml中添加一个属性:
<property name="connection.pool_size">20</property>
第二种方案是:
<property name="myeclipse.connection.profile">test</property>
<property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
<property name="connection.url">jdbc:microsoft:sqlserver://localhost:1433;databasename=test</property>
<property name="connection.username">sa</property>
<property name="connection.password">123</property>
<property name="c3p0.min_size">2</property>
<property name="c3p0.max_size">10</property>
<property name="c3p0.timeout">1800</property>
<property name="c3p0.acquireRetryAttempts">4</property>
<property name="c3p0.acquireIncrement">1</property>
<property name="c3p0.idleConnectionTestPeriod">36000</property>
<property name="c3p0.initialPoolSize">2</property>
<property name="c3p0.maxPoolSize">10</property>
<property name="c3p0.maxIdleTime">1200</property>
<property name="c3p0.maxStatements">30</property>
<property name="c3p0.minPoolSize">2</property>
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
第三中方案是Proxool:
在hibernate.cfg.xml中添加:
<!-- Proxool Database connection settings -->
<property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
<property name="hibernate.proxool.pool_alias">DBPool</property>
<property name="hibernate.proxool.xml">Proxool.xml</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="show_sql">false</property>
然后再添加一个Proxool.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
<proxool>
<alias>DBPool</alias>
<driver-url>jdbc:microsoft:sqlserver://localhost:1433;databasename=test</driver-url>
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
<driver-properties>
<property name="user" value="sa"/>
<property name="password" value="123"/>
</driver-properties>
<maximum-connection-count>10</maximum-connection-count>
</proxool>
</something-else-entirely>
这个三种方案,我都可以配置成功,可是,郁闷的是,这三种方案,都比我不用连接池的数据要慢,可能是我的测试不准确吧?我只做了连续100000次的数据插入操作。
- 怎样在hibernate中使用数据库连接池
- 怎样在hibernate中使用数据库连接池
- 怎样在hibernate中使用数据库连接池
- Hibernate使用数据库连接池
- Hibernate使用数据库连接池
- 怎样在hibernate中使用weblogic的JNDI?
- 在tomcat中使用数据库连接池
- Hibernate中c3p0数据库连接池
- 怎样在Eclipse中配置Hibernate插件?
- 怎样在hibernate的HQL语句中使用mysql 的自定义函数?
- hibernate设置使用C3P0数据库连接池
- 扩展Hibernate使用自定义数据库连接池
- 在Asp中使用断开式数据库连接
- Hibernate、SpringJDBC中在注解模式下获取数据库连接
- 在Hibernate中使用C3P0连接池
- Log4j 中使用数据库连接池
- Jsp中使用数据库连接池
- 怎样在MyEclipse中运用hibernate来开发j2ee程序
- 完全移动版MySQL(MySQL免安装版的配置)
- 在DLL中CreatWindow
- VS2005 点滴起步 --- 如何让DataGridView自动设置行高和列宽
- 对XAML进行编辑的辅助类(XamlHelper)
- 新手上路
- 怎样在hibernate中使用数据库连接池
- mmap例子详解
- 用ASP.Net和ASP.Net Ajax调用WebService
- WINDOWS核心编程--第二章UNICODE
- FreeBSD简单汉化终结篇[基于core font的汉化]
- Unicode 和字符集的最基础的知识
- 有关UNICODE、ANSI字符集和相关字符串操作的总结!
- AFX.H
- 什么是OO思想