Hibernate基础语义
Configuration:
Configuration类负责管理Hibernate的配置信息。Hibernate运行时需要获得一些底层实现的基本信息,关键属性包括:
1.数据库 URL
2.数据库用户
3.数据库用户密码
4.数据库JDBC驱动
5.数据库dialect:用于对特定数据库提供支持,其中包含了针对特定数据库特性的实现,如Hibernate数据类型到特定数据库类型的映射等。
使用Hibernate必须首先提供这些基础信息以完成初始化工作,为后续操作数据库做好准备。这些属性在hibernate配置文件(hibernate.cfg.xml or hibernate.properties)中加以设定。
当我们调用
Configuration config = new Configuration().configure();
时,Hibernate会自动在当前的CLASSPATH中搜寻hibernate.cfg.xml文件并将其读入到内存中作为后续操作的基础配置。Configuration类一般只有在获取SessionFactory时需要涉及,当获取SessionFactory之后,由于配置信息已经由Hibernate维护并绑定在返回的SessionFactory之上,因此一般情况下无需在对其进行操作。
我们也可以指定配置文件名,如果不希望使用默认的hibernate.cfg.xml作为配置文件的话,
File file = new File("c://sample//myhibernate.xml");
Configuration config1 = new Configuration().configure(file);
以上方式也可获得Configuration对象。
SessionFactory:
SessionFactory负责创建Session实例。可以通过Configuration实例来构建SessionFactory。
Configuration实例config会根据当前的配置信息,构造SessionFactory实例并返回。SessionFactory一旦构造完毕,即被赋予特定的配置信息。也就是说,之后config的任何变更不会影响到已经创建的SessionFactory实例,如果需要使用变更后的config实例的SessionFactory,需要从config重新构建一个SessionFactroy。
Session:
Session是持久层操作的基础,相当于JDBC中的Connection。
Session实例通过SessionFactory实例构建:
之后我们就可以调用Session所提供的save,find,flush等方法完成持久层操作。
下面为完整示例代码: