前边我们讲过了Session中一系列主流的方法及其功能,save/persist/get/load/update/saveOrUpdate/delete/evict等待其他的方法。这些方法可以将Java对象从一种状态转换到另一种状态,同时改变的还有session中的对象和数据库中的记录。所谓一动三变。但是需要注意的是:同一个Session中不可以有两个相同的OID。
下边我们再来讲一讲Hibernate的配置文件:hibernate.cfg.xml。
1.一个cfg.xml可以用一个Configuration对象来代表和引用
2.Hibernate的配置文件的方式有:hibernate.properties和hibernate.cfg.xml(推荐)
3.内部可以配置连接数据库信息的属性、Hibernate本身的其他的一些属性、c3p0的一些属性、将hbm.xml的各个文件加载进来。注意:须严格遵守器内部属性的名称。
① 数据库连接的属性
connection.username:数据库用户名
connection.password:数据库密码
connection.driver-class:数据库启动
connection.url:数据库的url
② Hibernate的其他的附属属性
show_sql:发送sql时是否在控制台显示sql
format_sql:在控制台显示sql时是否进行格式化
hbm2ddl.auto:生成数据表的策略
connection.isolation:数据库中的隔离级别,mysql中2代表读已提交。
③ 设置c3p0的一些属性
hibernate.c3p0.max_size :数据库连接池中允许存在的最大的连接数
hibernate.c3p0.min_size:数据库连接池中允许存在的最小的连接数
hibernate.c3p0.acquire_increment:数据库连接池每次向数据库申请的连接数
hibernate.c3p0.idle_test_period:多久检测一次线程池内的连接是否超时,若超时就将其删除
hibernate.c3p0.timeout:连接多久不使用就会被销毁
hibernate.c3p0.max_statements:数据库连接池中允许存在的最大的statement的数量
hiberante.jdbc.fetch_size:每次从数据库中拿取的记录的个数,经过测试,100为最合适的值。对mysql不起作用,只对oracle起作用。
hibernate.jdbc.batch_size:每次批量操作数据库的记录的数目,经过测试,最合适的值为30。对mysql不起作用,只对oracle起作用。
④ 加载各个hbm.xml对象关系映射文件