ORM中间件Hibernate的静态结构与调用步骤
Session接口向业务逻辑层提供读、写和删除域对象的方法, 它不公开任何数据访问细节, SessionImpl实现了Session接口, 它通过JDBC API实现了数据的持久化。SessionFactory类负责创建Session实例。Hibernate在初始化阶段把对象-关系映射文件中的映射元数据读入到SessionFactory的缓存中。
执行步骤举例:
如果业务逻辑层的类的某个方法希望从数据库中删除一个对象, 只需要调用Session的delete(aObject)方法(aObject为某一需要删除的对象);具体步骤为:
1)运用Java反射机制, 获得aObject对象的的类型为AObject.class;
2)参考对象-关系映射元数据, 了解到与AObject类对应的相关的表;
3)根据以上映射信息生成SQL语句;
4)调用JDBC API, 执行以上SQL语句。
确切地说, Hibernate在初始化阶段就会根据映射信息预定义一些SQL语句(Insert、Delete、Update), 这些语句存放在SessionFactory的缓存中, 当执行例如delete()方法时, 只要调用相关的SQL语句就可以了。