Hibernate中配置C3P0数据源步骤及hbm.xml 文件详解

来源:互联网 发布:java逆波兰式 编辑:程序博客网 时间:2024/06/03 16:39

> Hibernate中配置C3P0数据源步骤:

1、加入相关jar包:hibernate-release-4.2.4.Final\lib\optional\c3p0
2、在cfg中配置数据源的相关属性:

    <property name="hibernate.c3p0.max_size">10</property>    <property name="hibernate.c3p0.min_size">5</property>    <property name="hibernate.c3p0.acquire_increment">5</property>    <property name="hibernate.c3p0.timeout">2000</property>    <property name="hibernate.c3p0.idle_test_period">2000</property>    <property name="hibernate.c3p0.max_statements">10</property>

> hbm.xml 文件详解:

1、 一个文件可对应多个class, 但最好是一对一。2、在一对多的情况下,在hibernate-mapping标签中可使用package标签方便多个class的name属性书写。3、在class标签下有dynamic-insert/update,此标签在插入、更新单一属性时,若为true,则只set相关属性,反之,表的属性全部重新set。4、在id 标签中,配置表的主键,尽量使用整型(int、long)节省内存空间。5、id中generatr属性值:increment:自增策略产生主键代理,执行分为select、自加两步,存在并发安全问题,开发中不使用,在测试中可以使用。identity:在数据库底层实现自增,但Orale不支持,其没有自增实现。sequence:利用了序列实现,但Mysql 不支持序列机制。

native: 用的最广,根据你所用的数据库类型,智能选择主键策略。
hilo:使用high/low算法实现主键自增策略,具有跨平台性,和数据库无关。其执行过程和increment一致,但在select后对查询结果进行了更改,因此不存在同时读到相同值的并发问题,是安全的。
et/stackedit

原创粉丝点击