前几节已经完成了Java实体类、Hbm文件以及数据库的建立。今天小博老师带领大家学习如何使用Hibernate内置的API进行测试。
该示例中测试时基于Junit实现的。 Junit的好处是使用setUp和tearDown方法,在程序启动时创建org.hibernate.SessionFactory,并在程序结束时关闭Session。
初始化方法setup()首先构建一个org.hibernate.boot.registry.StandardServiceRegistry实例,该实例将获取hibernate.cfg.xml中的所有配置信息,然后合并到一组可供SessionFactory使用的服务中。
使用StandardServiceRegistry示例,我们创建了org.hibernate.boot.MetadataSources,它用于告诉Hibernate你的域模型的定义。同样从hibernate.cfg.xml中获取配置信息。
org.hibernate.boot.Metadata表示SessionFactory将基于的应用程序域模型视图。
初始化方法的最后一步是构建SessionFactory。SessionFactory是一个线程安全的对象,它被实例化一次以服务于整个应用程序。SessionFactory是创建org.hibernate.Session实例的工厂。
接下来编写具体的测试函数testBasicUsage():
testBasicUsage()第一部分,创建了一些新的Event对象,并使用save()方法将它们交给Hibernate进行管理,Hibernate负责为每个事件在数据库上执行一个INSERT插入语句。
testBasicUsage()第二部分,我们演示了Hibernate查询语言(HQL)的例子,通过生成相应的SELECT SQL语句,查询数据,并使用结果集数据填充Event对象。完成了从数据库加载所有Event对象的例子。