hibernate配置文件有两种形式:
hibernate.properties 和hibernate.cfg.xml
内容主要有
1,配置连接数据库的基本信息
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
2,配置数据源,以c3p0为例
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.min_size">2</property>
配置数据库连接池中的连接耗尽后,同一时刻获取数据库连接的数量
<property name="hibernate.c3p0.acquire_increment">2</property>
配置数据库连接池中的连接对象在多长时间没有使用就应被销毁
<property name="hibernate.c3p0.timeout">2000</property>
<property name="hibernate.c3p0.idle_test_period">100000</property>
配置缓存statement对象的数量
<property name="hibernate.c3p0.max_statements">10</property>
3,配置hibernate的基本信息
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
数据表的生成方式 :create,create-drop,update,validate
<property name="hbm2ddl.auto">update</property>
4,性能调优
设置hibernate的事务隔离级别
1 read uncommited ; 2 read commited; 3 repeatable read ;4 serializeable
<property name="hibernate.connection.isolation">2</property>
设置删除对象,使其的ID 设为null (mysql 貌似不管用,老返回 ID=100)
<property name="use_identifier_rollback">true</property>
设置每次从数据表读取数据的条数 ,在MySQL中无效
<property name="hibernate.jdbc.fetch_size">10</property>
设置对数据表进行批量操作的批次, 在MySQL中无效
<property name="hibernate.jdbc.batch_size">10</property>
5,配置映射文件
<mapping resource="com/m01/bean/News.hbm.xml"/>
...
读取配置文件
Configuration configuration =new Configuration().configure("hibernate.cfg.xml");
注: 默认读取 文件名为hibernate.cfg.xml 的文件(在源码里)
创建 SessionFactory对象
ServiceRegistry serviceRegistry=
new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
SessionFactory factory=configuration.buildSessionFactory(serviceRegistry);