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