Hibernate的配置

Hibernate的配置:

1、可编程的配置方式:

一个org.hibernate.cfg.Configuration实例代表了一个应用程序中Java类型到SQL数据库映射的完整集合。Configuration被用来构建一个(不可变的)SessionFactory。映射定义则由不同的XML映射定义文件编译而来。

2、获得SessionFactory:

当所有映射定义被Configuration解析后,应用程序必须获得一个用于构造Session实例的工厂。这个工厂将被应用程序的所有线程共享:
SessionFactory sessions = cfg.buildSessionFactroy();
Hibernate允许你的应用程序创建多个SessionFactory实例。这对使用多个数据库的应用来说很有用。

JDBC连接:

通常你希望SessionFactory来为你创建和缓存(pool)JDBC连接。如果你采用这种方式,只需要如下例所示那样,打开一个Session:
Session session = sessions.openSession();
一旦你需要进行数据库访问时,就会从连接池(connection pool)获得一个JDBC连接。

Hibernate自带的连接池算法不成熟,出于最佳性能和稳定性考虑你应该使用第三方的连接池。只需要用特定连接池的设置替换hibernate.connection.pool_size即可。这将关闭hibernate自带的连接池。例如:C3P0.
C3P0是一个随Hibernate一同开发的开源的JDBC连接池,它位于lib目录下。如果你设置了hibernate.c3p0.*相关的属性,hibernate将使用c3poConnectionProvider来缓存JDBC连接。

为了能在应用程序服务器中使用Hibernate,应当总是将Hibernate配置成从注册在JNDI中的DataSource处获得连接,你至少需要设置下列属性中的一个:

hibernate.connection.datasource    //数据源JNDI名字
hibernate.jndi.url          //jndi提供者URL
hibernate.jndi.class //jndi initialContextFactory类
hibernate.connection.username //数据库用户
hibernate.connection.password //数据库密码

SQL方言:

你应当总是为你的数据库将hibernate.dialect属性设置成正确的org.hibernate.dialect.Dialect子类。如果你指定一种方言,Hibernate将为上面列出的一些属性使用合理的默认值,为你省去了手工指定他们的功夫。


hibernate使用Apache commons-logging来为各种事件记录日志。
commons-logging将直接输出到Apache Log4j或JDK logging。要使用Log4j,你需要将Log4j.properties文件放置在类路径下,随Hibernate一同分发到样例属性文件在src/目录下。

 


XML配置文件:
另一个配置方法是在Hibernate.cfg.xml文件中指定一套完整的配置。这个文件可以当成hibernate.propreties的替代。若两个文件同时存在,它将覆盖前者的属性。

这个方法的优势在于,在配置文件中指出了映射定义文件的名字,一旦你需要调整Hibernate的缓存,Hibernate也是更方便。注意,使用Hibernate.prorperties还是hibernate.cfg.xml完全由你来决定。几乎是等价的。

使用XML来配置,使得启动Hibernate变得简单:
Sessionfactory sf = new Configuration().configure().buildSessionFactory();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值