1、2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 1Hibernate 实验(一):数据源、Hibernate 配置与反向工程映射姚远2013-10-16实验目的:1、 熟练掌握 Eclipse 中数据源的配置。2、 熟练掌握 Hibernate 配置、理解配置文件内容。3、 熟悉掌握反向工程的概念,并能完成反向工程的相关 ORMapping 操作。4、 初步了解应用 Hibernate 架构技术完成数据库应用项目开发。实验内容:参考下列步骤将示例项目:TeacherSysDemo 再做一遍。一 建立数据库如果该数据库已存在,
2、此步骤可省略。注意:也可以使用提供的 salary.bak 在 SQLServer 中进行“还原数据库”操作在 SQLServer 中建立数据库 teacherinfo。表结构与样例数据参考如下:二、新建项目新建一个 Dynamic Web Project 项目 Hibernatepro1,并将示例项目如:TeacherSysDemo 中WebContent 目录中 WEB-INFO 中 lib 下所有的.jar 文件拷贝到此新建项目对应的文件夹中。三、数据源配置在 Eclipse 菜单项中选择 Window-Show View-Data Source Explorer使之配置成如下效果:参考
3、配置过程与参考选项值设置:2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 22013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 3点击其中 Test Connection 按钮,应得到 Ping Success2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 4即为数据源配置成功。记录其中的 Connection URL。用于后续 Hibernate 配置。三、在 Eclipse 中进行 Hi
4、bernate 数据库连接配置与 Hibernate.xml 文件配置1.打开 Hibernate Configurations 面板Hibernate 插件安装完毕后,Windows-Show View-Hibernate-Hibernate Configurations点击 OK 后,出现 Hibernate Configurations 面板:2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 52.进行 hibernate 配置在该面板中点击右键菜单中“Add Configuration”菜单项:3.hibernate.
5、cfg.xml 文件的生成要先有 hibernate.cfg.xml 文件,才能为后续反向工程映射文件的生成提供条件。这是因为在 reveng.xml 文件的生成向导中,有一个步骤是显示数据库连接的数据表的。而这些数据表要能在这些向导中进行展示,需要有 hibernate.cfg.xml 文件。2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 6通过 Browse 按钮选择当前项目的名字,使得 Hibernatepro1 这个项目的名字出现在文本框中。接下来通过如下方式新建 hibernate.cfg.xml 配置文件:201
6、3 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 7出现如下对话框:此处选择”Create new”按钮。2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 8点击 Next:2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 9其中注意:1.URL 是:jdbc:sqlserver:/localhost:1433;databaseName=salary2.Driver class 是:com.micr
7、osoft.sqlserver.jdbc.SQLServerDriver2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 10点击整个对话框下方的 OK 按钮,即为配置完毕。4.查看 Hibernate 配置情况展开 hibernate 节点后,出现:2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 11每当数据库中的结构发生变化时,在面板中应通过右键菜单中的 Refresh 菜单项进行刷新查看。四.Hibernate 配置完毕后进行反向工程映射为 Java
8、实体类检查当前 Eclipse 开发环境是否处于 Java 视图开发状态,如果不是需要调整如下图所示:然后可以通过两种途径打开反向工程窗口1. 菜单项run-hibernate code gerneration-hibernate code gerneration configurations,2. 上图中的黄色快捷按钮2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 12出现配置窗口,这个窗口中应指定生成 java 类应在哪个项目中,且可以指定这些 java类的包名。1.生成反向工程映射文件点击上图中的”Setup”按钮生成
9、 Hibernate.reveng.xml 文件。这是一个反向工程映射文件。点击 Setup 按钮后,选择新建 hiberate.reveng.xml,2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 13出现 reveng.xml 的配置入口面板:点击 Next,出现的映射指定设置的面板:2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 142013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意
10、15可以看到已经连接的数据库的数据表列表。通过 Include 将选中的数据表进行设定:点击 Finish,此时反向工程映射文件 hiberate.reveng.xml 将生成。2.在 Exporters 选项页中确定并生成实体类及 hbm.xml 文件2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 16点击 Run 按钮,这样在指定的项目位置中将生成对应的实体类代码及.hbm.xml 文件。且在 Hibernate.cfg.xml 中增加了一行配置信息:测试整个程序:将示例 TeacherSysDemo 中黄色部分的代码拷
11、贝到上述新建的项目 Hibernatepro1。2013 年 10月 16 日 WEB 应用系统设计本系列实验文档仅用作个人用途,一切转载、复制、使用须经过本人同意 17然后运行 TeacherManager 中的 main 方法,看是否成功将教师信息(“00010“,“Kate“,29,“女“,“ 讲师“);插入到数据库。此处 main 方法的参考代码为:TeacherManager m = new TeacherManager();m.addTeacher(“00010“,“Kate“,29,“女“,“讲师“);运行时如出现下列异常,Exc eption in thread “main“
12、org.hibernate.HibernateException: No CurrentSessionContext configured!at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:685)at logic.TeacherManager.addTeacher(TeacherManager.java:13)at logic.TeacherManager.main(TeacherManager.java:30)说明配置文件中缺乏一个属性的配置:将thread加入到配置文件 hibernate.cfg.xml 中。注意加入到配置文件中的顺序