最近在研究hibernate,特此来记录一下
hibernate虽然有自己内置的連接池,但同时也支持其它的連接池。
连接池就我所知,大体分三种:
1.C3P0连接池。是最早认识的,也是比较多的一种。可参考http://sourceforge.net/projects/c3p0 .此技术使用了ComboPooledDataSource.示例如下:
ComboPooledDataSource cpds=new ComboPooledDataSource();
cpds.setDriverClass("org.gjt.mm.mysql.Driver");
cpds.setJdbcUrl("jdbc:mysql://localhost:3306/hibernate");
cpds.setUser("root");
cpds.setPassword("");
Connection con=cpds.getConnection();
Statment sm=con.createStatement();
String query="select username from users";
ResultSet rs=sm.executeQuery(query);
While(rs.next()){
String cpu=rs.getString("cpu");
System.out.println(cpu);
}
con.close;
}
2.Tomcat连接池
3.proxool连接池。网上说这种技术比较主流。配置不算很难。就是配置2个文件.
(参考http://blog.csdn.net/zunshanke2004/archive/2006/07/27/984598.aspx)
hibernate.cfg.xml
<session-factory >
<property name="hibernate.connection.provider_class">
org.hibernate.connection.ProxoolConnectionProvider
</property>
<property name="hibernate.proxool.pool_alias">MYPoolName</property>
<property name="hibernate.proxool.xml">proxool.xml</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<mapping resource="userinfo.hbm.xml"/>
</session-factory>
proxool.xml
<proxool>
<alias>MYPoolName</alias> <!--连接池的别名-->
<driver-url>
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testhibernate;SelectMethod=cursor
</driver-url>
<!--JDBC驱动程序-->
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
<driver-properties>
<property name="user" value="sa"/>
<property name="password" value="123"/>
</driver-properties>
<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁-->
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受-->
<maximum-new-connections>20</maximum-new-connections>
<!-- 最少保持的空闲连接数-->
<prototype-count>5</prototype-count>
<!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定-->
<maximum-connection-count>100</maximum-connection-count>
<!-- 最小连接数-->
<minimum-connection-count>10</minimum-connection-count>
</proxool>