Hibernate需要进行数据库访问,因此必须设置连接数据库的相关属性。所有Hibernate属性的名字和语义都在org.hibernate.cfg.Environment中定义。

    下面是关于JDBC连接配置中最重要的设置。

    ?  hibernate.connection.driver_class:设置连接数据库的驱动。

    ?  hibernate.connection.url:设置所需连接数据库服务的URL。

    ?  hibernate.connection.username:连接数据库的用户名。

    ?  hibernate.connection.password:连接数据库的密码。

    ?  hibernate.connection.pool_size:设置Hibernate数据库连接池的最大并发连接数。

    ?  hibernate.dialect:设置连接数据库所使用的方言。

    如果在hibernate.cfg.xml或hibernate.properties文件中设置如上属性,Hibernate将可以处理底层数据库连接细节。

    上面配置了Hibernate数据库连接池的最大并发连接数,但Hibernate自带的连接池仅有测试价值,并不推荐在实际项目中使用。实际项目中可以使用C3P0或Proxool连接池,为了使用C3P0或Proxool连接池,只需要用这些连接池配置代替hibernate.connection.pool_size配置属性即可。

    下面是配置C3P0连接池的配置片段。

    <!-- 设置连接数据库的驱动。-->

    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

    <!--设置所需连接数据库服务的URL。-->

    <property name="connection.url">jdbc:mysql://localhost/hibernate</property>

    <!--连接数据库的用户名。-->

    <property name="connection.username">root</property>

    <!-- 设置连接数据库的驱动。-->

    <property name="connection.password">32147</property>

    <!-- C3P0连接池的最大连接数-->

    <property name="hibernate.c3p0.max_size">20</property>

    <!-- C3P0连接池的最小连接数-->

    <property name="hibernate.c3p0.min_size">1</property>

    <!-- C3P0连接池中连接的超时时长 -->

    <property name="hibernate.c3p0.timeout">1800</property>

    <!-- C3P0缓存Statement的数量 -->

    <property name="hibernate.c3p0.max_statements">50</property>