Hibernate支持第三方连接池。官方推荐的连接池有C3P0、Proxool、DBCP。配置连接池需要注意三点:1、Apache的DBCP在Hibernate2中是支持的,但是在Hibernate3中不再推荐使用。官方的解释是这个连接池有缺陷。如果由于某些原因需要在Hibernate3中使用DBCP,推荐使用JNDI。2、默认情况下(即没有配置连接池时),Hibernate会使用内置的连接池。但是这个连接池的性能并不好,而且有很多bug(笔者曾经被Mysql环境下的八小时连接中断问题所困扰),所以官方只推荐只在开发中使用环境。3、Hibernate2和Hibernate3的命名空间发生了变化。例如配置C3P0时的provider_class在Hibernate2环境下是net.sf.hibernate.connection.C3P0ConnectionProvider,在Hibernate3环境下是org.hibernate.connection.C3P0ConnectionProvider。以下是Hibernate环境下常见的几种连接池配置:1、Hibernate默认连接池com.mysql.jdbc.Driverjdbc:mysql://localhost:3306/schoolprojecttrueUTF-8roottrueorg.hibernate.dialect.MySQLDialect2.C3P0连接配置com.mysql.jdbc.Driverjdbc:mysql://localhost:3306/schoolprojecttrueUTF-8rootorg.hibernate.connection.C3P0ConnectionProvider2051201001202trueorg.hibernate.dialect.MySQLDialect
3.proxool连接池(1)先写proxool配置文件,文件名:proxool.xml(一般和hibernate.cfg.xml文件放在同一目录下)本例配置MYSQL数据库,数据库名称为schoolprojectDBPooljdbc:mysql://localhost:3306/schoolproject?useUnicode=true&characterEncoding=UTF8<driver-class>com.mysql.jdbc.Driver9000020510010(2)配置hibernate.cfg.xml文件org.hibernate.connection.ProxoolConnectionProviderDBPoolproxoolconf.xmltrueorg.hibernate.dialect.MySQLDialecthibernate.connection.provider_class定义了Hibernate连接加载类,这里是Proxool连接池使用这个。不同的连接池有不同的加载类。可以参考Hibernate文档获取相关信息hibernate.proxool.pool_alias这里就是我们上面提到的连接池的别名。连接池的配置文件的位置可以使用相对路径或绝对路径。使用相对路径时,一定要在Path的范围内!否则,将抛出异常。dialect是声明SQL语句的方言。show_sql定义是否显示Hibernate生成的SQL语言。一般在调试阶段设置为true,完成后改为false,有利于调试。资源文件映射