Eclipse中开发Hibernate
一、准备数据库
原则:字段名称遵循属性的起名规则
二、准备项目
将Struts_Book更名为Hibernate_Book,如果考虑项目发布时名称的统一,将.mymetadata配置文件中的“context-root”属性的值修改为Hibernate_Book。
发布并运行Hibernate_Book项目,保证运行正确无误。
三、为项目添加Hibernate支持
配置4个页面
⑴ 添加Hibernate核心库
目的:能够解析Hibernate设计中的系统类
⑵ 创建Hibernate XML配置文件
目的:配置关于被连接数据库的各种信息
⑶ 定义数据库连接
目的:定义被连接数据库的各种信息,并写到配置文件中去(留到后面专门讲解)
⑷ 定义SessionFactory属性
目的:用于管理连接数据库的对象,相当于一个生产、管理产品的“工厂”。
观察项目结构的变化
⑴配置文件hibernate.cfg.xml
⑵ 自动生成HibernateSessionFactory类
理解Session对象的意义;
理解HibernateSessionFactory类的作用;
理解HibernateSessionFactory类提供的变量和方法的作用。
理解这些类的思路——参考JDBC的连接思路:
uConnection类的对象con获得了与数据库的连接;
u con对象的创建由DriverManager类完成,即由该类负责获取连接对象;
u con对象在创建时,需要知道被连接数据库的背景,即参数所描述的问题(url,"root","");
对应的解决思路:
u 通过Session类的对象(如:session)获得与数据库的连接;
usession对象的获取和释放是通过SessionFactory类自动生成并控制的;
uSessionFactory类需要读取配置文件—hibernate.cfg.xml中的信息,才能获得被连接数据库的背景,所以这个配置文件要描述关于数据库的具体细节,类似于创建con对象时参数提供的信息。
HibernateSessionFactory类用来管理Session对象,包含6个static方法,其中最常用的两个方法是:getSession()和closeSession()。
配置文件hibernate.cfg.xml保存了被连接数据库的详细信息,为了保证SessionFactory能够访问到该配置信息,定义了static变量CONFIG_FILE_LOCATION用来存储配置文件的路径。
再次查看HibernateSessionFactory类的代码
四、配置hibernate.cfg.xml文件
目的:得到连接数据库的信息,为SessionFactory类服务
⑴在DB视图中配置数据库连接
⑵hibernate.cfg.xml文件绑定数据库连接配置
此时查看hibernate.cfg.xml文件的代码
五、创建映射文件
目的:生成DAO类和ORM映射关系
DAO类的作用:包含了对表的各种操作,如:插入、删除、修改、查找等方法;
ORM映射关系:将表中的属性与对象属性对应起来,在编程中只涉及对象的操作。
操作过程:
⑴ 创建映射文件的两种方式
①在已经创建了的DB视图中创建映射文件
②DB视图与配置文件相结合创建映射文件
⑵ 一个很重要的操作细节
按包存放实体类,并创建实体类;
创建DAO类
创建映射文件
⑶ 分析目录结构
在创建映射文件的过程中完成了以下几个工作:
u 创建了映射文件Information.hbm.xml,并在配置文件中进行了注册;
u 创建了实体类Information.java和AbstractInformation.java;
u 引入了DAO层,生成了与DAO模式相关的3个类:IBaseHibernateDAO.java、BaseHibernateDAO.java和InformationDAO.java。
目录结构如下图所示:
⑷ 分析类结构
① 持久化实体类:
upublic class Information extends AbstractInformation{ }
查看文件内容,明确两者的关系,认识一个问题:
存在两种数据:数据库表中的字段和根据需要设计的属性。
为了对这两种特性数据的访问进行分离,不至于引起混淆,就在实体类的父类中存放了数据库表的字段,Information类就能够只关注非数据库部分数据的处理了。
② DAO类分析:查看DAO类的程序,分析它们之间的关系