MyEclipse+Hibernate+快速入门+中文版
hibernate的基本用法
hibernate的基本用法Hibernate是一个开源的Java框架,用于简化数据库操作。
它为开发人员提供了一个更加简单、直观的方式来管理数据库,同时也提高了应用程序的性能和可维护性。
本文将逐步介绍Hibernate的基本用法,包括配置、实体映射、数据操作等。
一、配置Hibernate1. 下载和安装Hibernate:首先,我们需要下载Hibernate的压缩包并解压。
然后将解压后的文件夹添加到Java项目的构建路径中。
2. 创建Hibernate配置文件:在解压后的文件夹中,可以找到一个名为"hibernate.cfg.xml"的文件。
这是Hibernate的主要配置文件,我们需要在其中指定数据库连接信息和其他相关配置。
3. 配置数据库连接:在"hibernate.cfg.xml"文件中,我们可以添加一个名为"hibernate.connection.url"的属性,用于指定数据库的连接URL。
除此之外,还需要指定数据库的用户名和密码等信息。
4. 配置实体映射:Hibernate使用对象关系映射(ORM)来将Java类映射到数据库表。
我们需要在配置文件中使用"mapping"元素来指定实体类的映射文件。
这个映射文件描述了实体类与数据库表之间的对应关系。
二、实体映射1. 创建实体类:我们需要创建一个Java类,用于表示数据库中的一行数据。
这个类的字段通常与数据库表的列对应。
同时,我们可以使用Hibernate提供的注解或XML文件来配置实体的映射关系。
2. 创建映射文件:可以根据个人喜好选择使用注解还是XML文件来配置实体类的映射关系。
如果使用XML文件,需要创建一个与实体类同名的XML文件,并在其中定义实体类与数据库表之间的映射关系。
3. 配置实体映射:在配置文件中,我们需要使用"mapping"元素来指定实体类的映射文件。
传智播客hibernate教程
北京传智播客教育
—高级软件人才实作培训专家! 高级软件人才实作培训专家!
基本概念和CURD
Java代码 代码 1.初始化代码 只做一次 初始化代码(只做一次 初始化代码 只做一次)
Configuration cfg = new Configuration(); cfg.configure(“config.cfg.xml”); 也可以通过cfg.setProperty设置属性。 SessionFactory sessionFactory = cfg.buildSessionFactory();
Criteria
Criteria是一种比HQL更面向对象的查询方式;Criteria的创建方式: Criteria crit = session.createCriteria(DomainClass.class); 简单属性条件如:criteria.add(Restrictions.eq(propertyName, value)), criteria.add(Restrictions.eqProperty(propertyName,otherPropertyName))
北京传智播客教育
—高级软件人才实作培训专家! 高级软件人才实作培训专家!
关联映射
多对一(Employee - Department) 一对多(Department-Employee) 一对一(room - door) 多对多(teacher - student) 组件映射(User-Name) 集合映射(set, list, map, bag) inverse和cascade(Employee – Department)
北京传智播客教育
—高级软件人才实作培训专家! 高级软件人才实作培训专家!
怎么把myeclipse改成中文版?
怎么把 myeclipse改成中文版?
怎么把myeclipse改成中文版? myeclipse汉化成中文版的步骤如下: 1、解压MyEclipse中的language文件夹 以安装目录为例,我的MyEclipse8.5的安装在D:盘下。将解压后的“language”文件夹,放入common文件夹下。入下图: C:\道知科技
2、打开MyEclipse创建一个java项目 将压缩包中的CreatePluginsConfig.java复制进去。在Main函数中,需要写 入“D:\\Genuitec\\Common\\language\\plugins”,也就是指向刚才language的plugins目录。然后执行。正确的情况下,将在控 制台输入一大串英文。 3、打开编辑器 用文本编辑器打 开“D:\Genuitec\MyEclipse8.5\configuration\org.eclipse.equinox.simpleconfigurator”目录下的 /doc/8089cb03591b6bd97f192279168884868762b83f.html 文件。将在第二部中生成的一大串英文复制 到该文件的下面。如果你的MyEclipse运行的文件夹不是MyEclipse 8.5的话就看一下你的运行路径是什么按照上面的路径打开 /doc/8089cb03591b6bd97f192279168884868762b83f.html 文件就行了。这个很重要因为有2个 configuration文件夹件,怕大家进错了,所以要注意是MyEclipse运行文件夹里的configuration。 4、找到MyEclipse 8.5 找到MyEclipse 8.5的目录下找到myeclipse.ini文件,文件就图1的里面的位置。用记事本打开在最后一行加多一条语句 1. /doc/8089cb03591b6bd97f192279168884868762b83f.html nguage=zh
MyEclipse10中文汉化教程
MyEclipse10中文汉化教程特别提醒:安装目录不要出现带空格的文件夹1:把下载好的myeclipse-10汉化包解压出来,再把myeclipse-10汉化包里的language的文件夹全粘贴到到你安装的MyEclipse 10里面的Common文件夹。
2:把压缩包里面的CreatePluginsConfig.java里面的代码复制如下面一样。
注意上面D:\\Myeclipse10\\Common\\language\\plugins的路径要改成你本地安装MyEclipse 10的路径,把红色的路径地址替换成你的,注意在每个"\"多加一个"\",比如我的安装路径是D:\Myeclipse10\ 就要改成 D:\\Myeclipse10\\如下图所示:3:在MyEclipse中创建一个项目,在项目里面建立一个CreatePluginsConfig类,把上面的代码复制进去,记得修改你的插件路径。
如下图所示:4:运行你的CreatePluginsConfig类,然后在控制台下面会输出一大串英文。
如下图所示:这时要全部把控制台输出的英文都复制到D:\Myeclipse10\MyEclipse10\configuration\org.eclipse.equinox.simpleconfigurator ,用记事本把 打开,在最后一行添加复制内容,然后保存。
MyEclipse 10的文件夹是你MyEclipse 10运行路径看图。
特别提醒:请认真查看MyEclipse安装路径,找到MyEclipse目录下的configuration目录(而非Common目录下的configuration目录)如下图所示:5:找到MyEclipse 10的目录下找到myeclipse.ini文件,文件就如下图中国的位置。
用记事本打开在最后一行加多一条语句nguage=zh如下图所示:6:保存,打开MyEclipse,这里可以看到中文的界面了如下图所示:。
最经典的hibernate教程 从入门到精通 第一篇(共四篇)
• </session-factory>
准备3:添加实体类和映射文件(UserInfo.hbm.xml)
使用Hibernate的7个步骤:
1、 Configuration 7、 关闭Session 2、 创建 SessionFactory
6、 提交事务 5、
3、 打开 Session 4、 开始一个事务
2-1):添加配置文件 -- hibernate.cfg.xml
<session-factory> <property name="connection.url"> jdbc:microsoft:sqlserver://localhost:1433;Database=pubs </property> <property name="ername">sa</property> <property name="connection.password">pwd</property> <property name="connection.driver_class"> com.microsoft.jdbc.sqlserver.SQLServerDriver </property> <property name="dialect"> org.hibernate.dialect.SQLServerDialect </property> <property name="show_sql">true</property> <mapping resource="com/aptech/jb/entity/User.hbm.xml" /> </session-factory>
MyEclipse简介
目录MyEclipse简介 (1)一、首先我们需要做到MyEclipse到底是什么? (1)二.接着既然我们已经知道了这个软件,那么它又可以帮我们作些什么呢? (3)三、怎么在MyEclipse中安装theme插件,改变配色方案 (6)四、1.常用的MyEclipse 快捷键(方便快捷) (11)五、如何提高myeclipse的启动速度和运行速度? (13)六、学习myeclipse资料 (15)MyEclipse简介一、MyEclipse是什么?大家应该都知道Eclipse优点:1.免费2.程序代码排版功能3.有中文化包4.可增设许多功能强大的外挂5.支持多种操作系统(Windows、Linux、Solaris、Mac OSX)..等等而MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, JavaScript, SQL, Hibernate。
在结构上,MyEclipse的特征可以被分为7类:1. J2EE模型2. WEB开发工具3. EJB开发工具4. 应用程序服务器的连接器5. J2EE项目部署服务6. 数据库服务7. MyEclipse整合帮助对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。
MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错二.可以做什么这里我作一些简要的介绍(由于myeclipse相继推出不同的版本,每个版本又有其各自的特点总结起来讲这个版本支持这些以下功能:1平台和安装支持1)兼容Eclipse 3.3/Europa 1.02)支持Java 5 & Java 63)可运行在Windows (XP, Vista)、Linux、Mac 操作系统2改进了Java EE 5和Spring功能部件1)提高EJB3.0工程项目的灵活度,从数据库模式直接产生bean,你可以结合sybase开发工具PowerDesigner来生成相应当实体bean,这样给我们带来了不少便利之处!(只是要提醒的是她生成的实体bean的对OR映射功能的支持很差,需要我们手动去做一些修改)2)支持Java持久化结构开发3)对Spring 2.0升级,增强配置管理功能4)升级Hibernate,这些对开发企业级的应用是多么大的一个佳音啊!对不?5)Spring-JPA高度集成3支持AJAX开发和测试(这门技术是近几年大家一致看好的技术,而该软件给她提供了支持,给开发人员带来了不少便利之处,用了你就知道的哦!)1)支持美国Apple公司—所有的AJAX特征能在Mac操作系统上运行2)改进了AJAX Web 浏览器3)改进了AJAX工具4)增强了JavaScript调试,这点我的体会很深刻,该软件提供的调试机制,如果你充分用起来你会发现你的开发效率会大幅度的提高4支持RAD Web开发5具备Matisse4MyEclipse可视化Swing设计器6快速Java EE部署和测试(感触颇深,如果你的电脑性能不差,部署的速度非常快,与传统的方式比他的优势是如此的明显,相信只要你一用你就不想再想用传统的方式了,但有点不尽人如意的是只要你的代码修改了你就要重新部署你所打的软件包,比如当你在JBOSS服务器里部署EJB3.0运用的时候,如果你的一些Bean类变化或者修改,你就不得不要去重新部署,但是还是不影响你的效率的!)1)项目自动部署和启动服务:根据指定的调试和运行模式,自动配置项目和启动服务器;在配置前,自动停止运行的服务器;在现有的应用程序配置中可以重新配置2)MyEclipse Tomcat 6 服务器——就地集成,启动只要一秒钟3)MyEclipse Derby 服务器:自动进行JDBC连接;可配置的启动选项上述仅仅是做了一些我在开发一些小项目的时候用到的一些功能,有兴趣的同学可以去到MyEclipse学习中心在那里可以找到帮助和学习资料. 包括: 1)包含Java EE项目源代码. 2)一键安装MyEclipse Java EE示例项目三、怎么在MyEclipse中安装theme插件,改变配色方案/我们都知道MyEclipse是我们软件开发人员的神兵利器,具有很强的可拓展性,为我们的开发提供了很多便利,熟悉的使用MyEclipse成了软件开发者必修的一门课,今天我将为大家讲解如何在怎么在MyEclipse 中安装theme插件,改变配色方案,MyEclipse中默认的是白底黑字,关键字高亮显示,有的人可能不喜欢这种配色方案,今天我就教大家怎么导入自己喜欢的theme。
利用Myeclipse简化基于Hibernate的数据库访问
环境 功能非 常强 大, 中之 一就是 简化基 于 Hi ra 的数 据库访 问。使 用 Mycis 开发 基 于 Hb ma 的数据库 应用 , 其 b nt e e el e p i e t e 使得 开发 人 员真 正从繁 重 的代 码编 写工作 中解 脱 出来 , 大地提 高 了开发 效率 和项 目质量 。这里 将结合 一个 实例来介 绍这种 强 极
开 发者 专注 于手 中 的业务 而无 需操 心复 杂烦琐 的数 据库 连
接 , 为 近 年 来 争 相 讨 论 的话 题 。Hi rae 是 这 一 时 期 的 成 bn t 正 e
I
企业应用
I
产物 。 My cpe 得 Hi ra 而 el s 使 i bn t e e的实现 高效而简 单, 为 目 成
大 的技 术 。
关键 词: 数据持 久化 ;数据 库应 用 ;Hi rae ci e b nt;E ls;My epe 2 E e p el s;JE i
பைடு நூலகம்
中图法分类 号: P l T 31
文献 标识码 : A
文章 编号 :0 07 2 (0 7 0 .730 10.0 4 2 0 ) 40 7 .2
( ol e f uo t n Naj gU ie i T cn lg , nig 10 9 C ia C l g A tma o , ni n r t o eh oo y Naj 0 0 , hn) e o i n v sy f n2
Ab t a t Astemo t ii ga data t et c n l g f aa a ea c s , Hi e n t fe sa o d r s l t n o d t e sse c . M y — sr c : s s n t c i h o o y o d t b s c e s h r n r v e b r aeo r o o u i f a p r itn e g e o a e ci s l e DE i a o ru o ,wh c al i l y t e e l a in o d t b ea c s a e nHi en t .De eo i gHie a e p l a i n p I we f l o l s p t i hC lsmp i a i t f a a c e s s do b r a e fh r z o a s b v lp b r t p i t n n a c o
Hibernate 3入门
Hibernate 3入門Hibernate 是「物件/關係對應」(Object/Relational Mapping)的解決方案,簡寫為ORM,簡單的說就是將Java 中的物件與物件關係,映射至關聯式資料庫中的表格與表格之間的關係,Hibernate 提供了這個過程中自動對應轉換的方案。
2001年未Hibernate 第一個版本發表,2003年6月8日Hibernate 2 發表,並於年未獲得Jolt 2004 大獎,後被JBOSS 收納而成為其子項目之一,2005年3月Hibernate 3 正式發表,當中有了一些重大的改變,這份文件將以之前Hibernate 2 時撰寫的文件為基礎,針對Hibernate 3作重新整理的動作,所使用的版本為Hibernate 3.0。
基礎入門從一個最基本的物件關係映射自動化程式,瞭解Hibernate 組成的基本元素,並進一步瞭解Hibernate 的基礎語義、配置等概念。
∙O/R 映射入門第一個Hibernate 程式很簡單,將一個物件映射至一個資料表。
o配置Hibernateo第一個Hibernateo第二個Hibernate∙基本配置瞭解一下配置文件、映射文件中各種元素的意義,在進入物件關係映射的學習之前,這是必備的基本功夫。
o配置文件o資料庫連結o簡介快取(Session Level)o簡介事務管理(基於JDBC )o映射文件∙基本API瞭解一下Hibernate 常使用的幾個類別之基本使用方式。
o Sessiono Session 管理o Criteria 基本查詢o Criteria 進階查詢o DetchedCriteriao Query∙HQL(Hibernate Query Language)這是Hibernate 官方所推薦的查詢語言,接近SQL 的語法,並提供更多的特性與封裝。
o基本查詢o where、group by、order by 子句o更新、刪除∙SQL 支援Hibernate 提供了對SQL 的支援,並可以自行定義持久化方式。
Hibernate基础知识详解
Hibernate基础知识详解<hibernate-mapping><class name="*.*.*" table="t_customer" catalog="***"><id name="id" column="c_id"><generator class="identity"/></id><property name="name" column="c_name" length="20"/><set name="orders" inverse="false" cascade="save-update"><key column="c_customer_id"/></set></class></hibernate-mapping>(1)统⼀声明包名,这样在<class>中就不需要写类的全名。
(2)关于<class>标签配置name 属性:类的全名称table 表的名称,可以省略,这时表的名称就与类名⼀致catalog 属性:数据库名称可以省略.如果省略,参考核⼼配置⽂件中 url 路径中的库名称(3)关于<id>标签,<id>是⽤于建⽴类中的属性与表中的主键映射。
name 类中的属性名称column 表中的主键名称 column 它也可以省略,这时列名就与类中属性名称⼀致length 字段长度type 属性指定类型<generator>它主要是描述主键⽣成策略。
MyEclipse详细使用教学教程
MyEclipse:详细使用教程一.提示:MyEclipse的透视图按钮:可以切换不同的透视图(位于右上角)1.建立一个工程----File—new—project---选项含有Javaproject,webproject等等—输入工程名字如myproject,其他可以选择默认—完成2.创建一个Java文件---myproject—右键—new---SourceFolder(还有class,package,Folder等等)---名字如src—以后可以将class文件放入其中,可以在src右键—new--class—创建Java 文件注意:folder与Source Folder的区别Source Folder:用于放置Java文件,可以自动编译,可以嵌套;Folder:是一般的文件夹,不可以编译,要用到下面的生成源文件夹3.运行Java文件----选中Test—右键—runas—Java Application 或者单击工具栏按钮(类似播放器开始按钮)4.MyEclipse的自动提示,自动修正,自动完成功能:黄色,红色标志提示(1)输入部分字符,方法自动生成(2)根据提示,导入相应的包(3)提示清楚未使用的包(4)提示无用的方法,变量(5)自动提示接口,抽象类的的方法以及重载注意:《1》接口例子:….publicclass Test implementsConnection---就会在此行出现提示,单击出现AddUnimplements Methods等等,单击它自动添加Connection中的方法。
《2》抽象类例子:….publicclass Test extends List---可以在List上右键—source—Override/ImplmentsMotheds(重载实现方法)—选择需要的方法;《3》自动生成set,get方法:private String user ; ;在类中声明变量后,可以右键—source—GenerateSets andSets---可以选择方法;二.断点调试1.断点的添加,去除----在想设置断点的程序行左端,双击,即添加一个断点,再双击,去除断点,另外右键也可以,还可以将断点失效或有效;例如:publicclass Test {publicstaticvoid main(String args[]){double a=0;/*此处设置断点*/ a=Math.random();System.out.print(a);}}2.调试断点(1)---右键Test—debug as—JavaApplication---弹出是否切换工作空间,选ok;注意相关窗口(显示程序状态,变量,断点位置等)。
快速入门
杰表.2008 快速入门杰表设计器完java语言编写而成,因此,有java语言“一次编写,到处运行”的特点,杰表设计器可以安装在任何操作系统中,前提是该操作系统安装 java 运行环境,即Java Runtime Environment(JRE)。
如果客户端上已经安装过JDK,则不需要再单独安装java Runtime Environment(JRE)了。
JDK或JRE下载安装JDK可以到SUN公司网站下载,杰表需要有JDK1.4.2以上的版本。
推荐使用JDK1.5.JDK1.4.2下载地址:/j2se/1.4.2/download.htmlJDK1.5下载地址: /j2se/1.5.0/download.jsp下载完成后点击运行下载的安装程序,请根据安装程序的提示,完成安装。
安装杰表设计器首先到/download/download.htm下载杰表的最新版本 jrd.2008.xxx.zip(设计器)和jrs.2008.xxx.with.tomcat5.0.zip(服务器). (xxx代表版本号.)杰表设计器和服务器的安装,无须执行安装程序,只要解压至一个目录即可,这里假设您解压到d:\jrd_version.win;双击运行d:\jrd_version.win\bin\start.exe,启动设计器,创建一个简单的报表,能预览则表示安装成功。
注意:以下两种情况,均可导致设计器不能 正常启动。
没有安装JRE或JRE版本太低。
解决办法是删除低版本的 JRE后,重新安装1.4.2或以后版本的JRE。
JRE版本冲突系统中安装了太多版本的JRE或JDK,这种情况经常是由于安装了一些JAVA开发工具,这些开发工具自带JRE,如JBuilder等。
在这种情况下,建议你删除所有的JRE,再安装JRE或者JDK。
设计表格报表模板1.以上工作都准备好了之后,接下来使用杰表创建第一个模板。
首先在杰表设计器目录下双击运行start.exe.点击新建。
北风网MyEclipse教程第11章
第11章SSH2框架整合开发Struts 2框架在实际开发中主要做控制层,所以它也可以和Spring、Hibernate进行整合开发,通常将它们整合后的框架称为SSH2框架。
Struts2框架只和Hibernate框架整合是比较少见的,它并不符合当前Web项目的分层思想,所以这里就不对它进行详细讲解。
在本章中将先来讲解Struts2和Spring整合,再来讲解如何将三种框架整合在一起开发。
11.1 Struts 2+Spring整合开发在Struts和Spring整合一节中,可以发现修改的地方是非常多的。
Struts2和Spring 整合是比较方便的,在Struts 2框架中专门开发了用于Spring整合的插件JAR包,在本节中将主要讲解它们之间的整合操作。
11.1.1 创建整合项目因为在MyEclipse中并没有集成开发Struts 2项目的功能,所以要首先手动创建一个Struts 2项目。
在普通的Web项目中执行加入Struts 2类库和加入、修改配置文件等操作,这些操作可以参考Struts 2一章进行学习。
在Struts 2项目的基础上,加入Spring框架的支持。
在MyEclipse的菜单中,选择“MyEclipse”|“Project Capabilities”|“Add Spring Capabilities”命令,将弹出加入Spring 类库支持操作界面,在其中选择Spring核心类库和Web类库,如图11-1所示。
•图11-1 加入Spring类库单击“Next”按钮,将进入对Spring配置文件进行设置的界面,如图11-2所示。
说明:在和Struts 2整合的项目中,当启动项目时将会首先查找WEB-INF目录下的Spring配置文件,如果该根目录下没有,则会自动查找子目录。
所以通常直接放在WEB-INF目录下,放在sec目录下也是可以的,它将自动放置在WEB-INF|classes目录下。
hibernate hql语法
Hibernate HQL(Hibernate Query Language)是Hibernate框架中的一种查询语言,类似于SQL,但它使用的是对象和属性的名称而不是表和列的名称。
HQL提供了丰富的查询语法,用于执行各种数据库操作,如CRUD操作、联接、分组、排序等。
以下是一些HQL的基本语法示例:1. 查询所有实体:java复制代码from EntityName2. 带条件的查询:vbnet复制代码from EntityName where propertyName = 'value'3. 排序查询结果:vbnet复制代码from EntityName order by propertyName asc/desc4. 分组查询结果:vbnet复制代码select propertyName, count(*) from EntityName group by propertyName5. 联接查询:vbnet复制代码select e.propertyName, d.propertyName from EntityName e join e.propertyName d where d.propertyName = 'value'6. 分页查询:java复制代码from EntityName where propertyName = 'value' order by propertyName desc limit 0, 107. 更新实体:sql复制代码update EntityName set propertyName = 'newValue'where propertyName = 'value' 8. 删除实体:sql复制代码delete from EntityName where propertyName = 'value'除了基本的语法外,HQL还支持一些高级特性,如子查询、聚合函数、CASE语句等。
hibernate常用方法
hibernate常用方法Hibernate是一个开源的对象-关系映射框架,用于简化Java应用程序与数据库之间的交互。
Hibernate提供了丰富的API来执行通用的数据库操作,包括插入、更新、删除和查询。
下面是Hibernate常用的方法:1. save(:将一个新的对象插入到数据库中,返回一个唯一标识符。
2. update(:更新数据库中的一个对象。
3. delete(:从数据库中删除一个对象。
4. get(:根据给定的唯一标识符查询数据库中的一个对象。
5. load(:根据给定的唯一标识符查询数据库中的一个对象并加载它。
6. saveOrUpdate(:根据对象的状态来决定是插入还是更新数据库中的对象。
7. merge(:将给定对象的状态合并到数据库中的对象。
8. persist(:将一个新的对象插入到数据库中,并立即执行同步。
9. lock(:锁定一个对象,防止其他会话对其进行修改。
10. clear(:清除会话缓存中的所有对象。
11. evict(:从会话缓存中移除给定的对象。
12. refresh(:强制会话重新从数据库中加载对象的状态。
13. flush(:将会话缓存中的所有操作发送到数据库中。
14. Criteria API:用于创建复杂的查询条件。
15. HQL(Hibernate Query Language):类似于SQL的查询语言,用于查询对象。
16. Native SQL:直接执行SQL语句来操作数据库。
17. Transaction API:用于管理事务的开始、提交和回滚。
18. Session API:用于管理Hibernate会话的生命周期。
19. SessionFactory API:用于创建和销毁Hibernate会话工厂。
20. Dialect API:用于不同数据库间的差异性处理。
这些方法涵盖了Hibernate的核心功能,开发者可以根据具体的需求选择合适的方法来操作数据库。
hibernate项目开发的一般步骤
Hibernate 是一个开源的对象关系映射(ORM)框架,它可以将 Java 对象映射到关系型数据库中。
使用 Hibernate 进行项目开发的一般步骤如下:
1. 配置 Hibernate:首先需要在项目中添加 Hibernate 的相关依赖,并在配置文件中进行相关配置,如连接数据库的 URL、用户名和密码等。
2. 创建实体类:根据数据库表的结构,创建相应的 Java 实体类。
这些类需要继承自Hibernate 的某个抽象类或接口,并包含相应的属性和注解。
3. 创建映射文件:为每个实体类创建一个映射文件,用于描述实体类与数据库表之间的映射关系。
映射文件通常是以`.hbm.xml`为扩展名的文件。
4. 编写 DAO 类:使用 Hibernate 提供的 API 编写数据访问对象(DAO)类,用于对数据库进行操作。
DAO 类通常包含用于插入、更新、删除和查询数据的方法。
5. 编写业务逻辑:在服务层编写业务逻辑代码,调用 DAO 类进行数据库操作。
6. 测试:编写测试代码,对业务逻辑进行测试。
7. 部署和运行:将项目部署到服务器上,并运行应用程序。
需要注意的是,在使用 Hibernate 进行项目开发时,需要遵循一些最佳实践,如延迟加载、缓存优化等,以提高系统的性能和可维护性。
以上是使用 Hibernate 进行项目开发的一般步骤,具体的步骤和实现方式可能因项目的需求和架构而有所不同。
Hibernate教程
其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。
然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。
这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。
在这篇文章将不涉及Eclipse, log4j, Struts, Tomcat, XDoclet,和JBoss。
本文的目的是演示一下Hibernate的安装过程以及最基本的功能,从而给初学者一个低得不能再低的入门门槛。
下载文件你需要Java SDK、Hibernate包、Ant包、和JDBC Driver。
1、Hibernate包下载地址:/hibernate/?sort_by=date&sort=desc2、Ant包下载地址:/ant/binaries/apache-ant-1.6.1-bin.zip3、JDBC Driver要根据你用的database来定,一般database官方网站上都会有。
Hibernate 支持常用的database,比如MySQL, Oracle, PostgreSQL, 和MS-SQL Server。
这些数据库都有JDBC Driver:Oracle JDBC Driver下载地址(下载前必须同意Oracle协议书)/software/htdocs/distlic.html?/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.h tmlMySQL JDBC Driver下载地址/downloads/connector/j/3.0.htmlPostgreSQL JDBC Driver下载地址/download.htmlMS-SQL Server JDBC Driver下载地址/downloads/details.aspx?FamilyID=9f1874b6-f8e1-4bd6-947c-0fc5bf05 bf71&displaylang=en4、将Hibernate包和Ant包分别解压至c:\dev\下(此目录不重要,你可以换其它任何目录)。
MyEclipse使用手册(详细版)
MyEclipse使⽤⼿册(详细版)0. 快捷键================================================================================编辑:Ctrl+Shift+L 显⽰所有快捷键Ctrl+K 参照选中的词(Word)快速定位到下⼀个Ctrl+Shift+K 参照选中的词(Word)快速定位到上⼀个Ctrl+O 快速显⽰OutLineCtrl+T 快速显⽰当前类的继承结构Ctrl+Shift+X 把选中⽂本全部改为⼤写Ctrl+Shift+Y 把选中⽂本全部改为⼩写Ctrl+Shift+F 按照当前的配置⽂件格式化源代码Ctrl+L 弹出⾏定位框以便定位到某⼀⾏Ctrl+Numpad_DivideCtrl+/(⼩键盘) 使代码折叠可⽤Ctrl+Numpad_MultifyCtrl+*(⼩键盘) 展开当前类中的所有代码Ctrl+Shift+Numpad_DivideCtrl+Shift+/(⼩键盘) 折叠所有,如果不能全部成功折叠,将光标移到⽂档最后试着或多按⼏次折叠当前类中的所有代码Ctrl+1 快速修正,需要导包的时候出现导包提⽰界⾯,Ctrl+Q 定位到最后编辑的地⽅Ctrl+Shift+m 导⼊当前⾏上需要的包(add import)Ctrl+Shift+o 导⼊所有需要的包(organize imports)Shift+Enter 在当前⾏的下⼀⾏插⼊⾏Shift+Ctrl+Enter 在当前⾏的上⼀⾏插⼊⾏Alt+/ 语法补充快捷Ctrl+MouseLeft 当按住Ctrl时,将Mouse移动到⼀个类或类的⽅法或属性时,左键点击会进⼊到源⽂件内进⾏查看如果没找到源⽂件,⽽需要指定Sourece,⽐如说JDK⾃⾝的src.zip⽂件或源⽂件所在的⽂件夹Ctrl+/ == Ctrl+Shift+C 注释选定⾏或取消注释Ctrl+Shift+/ ⽤*...... */注释选定⾏Ctrl+Shift+\ 取消注释Ctrl+D 删除当前⾏Shift+< 在当前位置插⼊成对的尖括号:<>Ctrl+Alt+down 复制当前⾏到下⼀⾏Ctrl+Alt+up 复制当前⾏到上⼀⾏Ctrl+Alt+J Join Lines连接⾏Alt+down 当前⾏和下⾯⼀⾏交换位值Alt+up 当前⾏和上⾯⼀⾏交换位值选定光标所在的⾏通过⽤这两个快捷各执⾏⼀次来完成Alt+left 前⼀个编辑的代码页⾯或在当前页⾯中上⼀个光标的位置Alt+right 下⼀个编辑的代码页⾯或在当前页⾯中下⼀个光标位置(当使⽤了Alt+←后)Alt+Shift+O (或点击⼯具栏中的Toggle Mark Occurrences按钮)当点击某个标记时可使本页⾯中其他地⽅的此标记黄⾊凸显,并且窗⼝的右边框会出现⽩⾊的⽅块,点击此⽅块会跳到此标记处Shift+Home 选定光标处到⾏⾸的内容Shift+End 选定光标处到⾏尾的内容Ctrl+Shift+Home 选定光标处到⾸⾏⾏⾸的内容Ctrl+Shift+End 选定光标处到尾⾏⾏尾的内容Ctrl+Shift+P 定位到与之成对匹配的括号{或)(从前⾯定位后⾯时,光标要在匹配符之后,从后往前定位,反之)Tab与Shift+Tab 选中要移动的代码后,按Tab键右移,按Shift+Tab键左移Ctrl+upCtrl+down 上下滚动编辑页⾯查找:Ctrl+Shift+R 相当于Navigate->Open Resource...输⼊Java源⽂件名或类名,会按通配的⽅式列出符合条件的.java源⽂件Ctrl+J 正向增量查找(按下Ctrl+J⽂件你所输⼊的每个字母,编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显⽰没有找到了,查⼀个单词时,特别实⽤,这个功能Idea两年前就有了)Ctrl+Shift+J 反向增量查找(和上条相⽂件只不过是从后往前查)窗⼝:Ctrl+M 窗⼝最⼤化与恢复⼤⼩转换最⼤化当前的Edit或View(再按则恢复)Ctrl+W 关闭当前EditorCtrl+Shift+F4 关闭所有打开的EditorCtrl+E 快速显⽰当前Editor的下拉⽂档列表Ctrl+Shift+E 显⽰管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)F2 当⿏标放在⼀个标记处出现Tooltip时候,按下F2会铆钉显⽰的 Tooltip 框F3 跳到声明或定义(源⽂件)处Alt+Enter 显⽰当前选择资源(⼯程,or ⽂件 or⽂件)的属性Ctrl+PgUpCtrl+PgDown 切换代码窗⼝的各个⽂档,如果切换到头就会打开"Show List"下拉框在此下拉框⾥显⽰有最近曾打开的⽂件,连续按可移动选中项对于XML⽂件是切换代码和图⽰窗⼝Alt+Shit+w 在光标处弹出选择view的菜单在Package窗⼝下,弹出Navigator与Properties的选择菜单Alt+Shift+Q,Q 弹出"Show View"选择界⾯Alt+Shift+Q,T Show View(View: Hierarch)Alt+Shift+Q,B Show View(View: Breakpoints)Alt+Shift+Q,H Show View(View: Cheat Sheets)Alt+Shift+Q,C Show View(View: Console)Alt+Shift+Q,L Show View(View: Error Log)Alt+Shift+Q,Z Show View(View: History)Alt+Shift+Q,J Show View(View: Javadoc)Alt+Shift+Q,O Show View(View: Outline)Alt+Shift+Q,P Show View(View: Package Explorer)Alt+Shift+Q,X Show View(View: Problems)Alt+Shift+Q,S Show View(View: Search)Alt+Shift+Q,Y Show View(View: Synchronize)Alt+Shift+Q,V Show View(View: Variables)Debug:F5 单步调试进⼊函数内部F6 单步调试不进⼊函数内部F7 由函数内部返回到调⽤处F8 ⼀直执⾏到下⼀个断点Refactor 重构(⼀般以Alt+Shift开头):Alt+Shift+R 重命名被选中的变量Alt+Shift+M 抽取⽅法Alt+Shift+C 修改函数结构Alt+Shift+L 抽取本地变量Alt+Shift+F 把Class中的local变量变为field变量(MyEclipse中需要⾃定义)Alt+Shift+I 合并变量(可能这样说有点不妥Inline)Alt+Shift+V 移动⽅法和变量不怎么常⽤Alt+Shift+Z 重构的后悔药(Undo)================================================================================ Ctrl+I格式化激活的元素Format Active Elements?Ctrl+Shift+Space提⽰信息即Context Information?================================================================================ 1. 更改快捷键设置(⾃定义快捷键)================================================================================代码的⾃动完成:(1) Windows->Preference->General->Keys是管理快捷键的地⽅在这⾥的type filter text处输⼊Content Assist,找到要修改的"Content Assist"在下⾯会出现"Content Assist",⽤⿏标选中"Content Assist",在下⾯的"Binding"处按⾃⼰需要的快捷键组合,⽐如Alt+/在"When"中选择"Editing Text"(2) Windows->Preference->Java->Editor->Templates这⾥是管理Java编辑器模板的地⽅⽐如找到"Name"为sysout的,可以看到其"Preview:"处有:System.out.println(${word_selection}${});${cursor}其表⽰在输⼊sysout后,按Alt+/就可以⾃动完成System.out.println();的输⼊再⽐如找到"Name"为main的,可以看到其"Preview:"处有:public static void main(String[] args) {${cursor}}表⽰在输⼊main后,按Alt+/就可以在弹出的选项中选择main⽅法,⾃动完成main⽅法的格式化输⼊⾃定义抽取局部变量为成员变量:Windows->Preference->General->Keys在这⾥的type filter text处输⼊Convert a local variable to a field,如果看到Binding⼀栏处还没有绑定快捷键,就将光标移到下⾯的Binding⽂本框内,然后按Alt+Shift+F,然后OK即可.================================================================================ 2. 整合Javadoc⽂档到MyEclipse================================================================================在MyEclipse中左边的"Package Explorer"窗⼝中选中⼀个JAR包右键->属性>Javadoc Location可以指定其JAR包所对应的Java⽂档的位置,其中上⾯的"Javadoc URL"可以点击Browse..."选择⽂档所在的⽬录,如:javaee.jar在我电脑中的路径是这样的:file:/D:/Program/Sun/SDK/docs/api/选择完后,可以点击Browse..."下的"Validate..."进⾏有效性验证⼀般所选择的⽬录下⾯应该有index.html或相应的package-list⽂件.其中下⾯的"Javadoc in archive"是⽤来选择⼀个打包⽂档jar或zip的"选中"External file"表⽰我们需要从外部⽽不是MyEclipse⼯作空间中选择这个⽂档,然后点击Archive path后的"Browse...",选择⼀个有Javadoc打包的⽂件⽐如我电脑中的路径是这样的"D:\Program\Sun\SDK\docs\api_doc.zip注意从sun公司⽹站下载的java_ee_sdk-5_03-javadocs.zip其结构是这样的"java_ee_sdk-5_03-javadocs.zip ||docs||api|| |index.html| |package-list||legal不能直接选中所下载的java_ee_sdk-5_03-javadocs.zip,⽽要重新打包,将其中的index.html那⼀级⽬录置为重新打包后的顶层⽬录或者不⽤重新打包,在Archive path:中找到下载的java_ee_sdk-5_03-javadocs.zip⽂件再在其下⾯的Path within archive:中选择相应的路径即可Archive path:D:\Program\Sun\SDK\java_ee_sdk-5_03-javadocs.zipPath within archive:docs/api这样,当在编写⼀个源Java源⽂件的时便将光标定位到⼀个类或接⼝上的时候,如:选中HttpServlet,然后按F1,在窗⼝右边就会出现Help窗⼝,点击窗⼝中的Javadoc for 'javax.servlet.http.HttpServlet',就可以在窗⼝中出现相应的API帮助⽂档了.以上的对相应的JAR包或相关框架的DOC的设置,那么对于JDK的DOC的设置,可以使⽤下⾯的⽅式:Windows->Preferences输⼊JRE,然后选中Java->Installed JREs在右边选中需要进⾏DOC⽂档位置设置的JRE,然后选择"Edit",在出现的界⾯中选中相应的jar包,然后点击右边的"Javadoc Location..."进⾏设置.================================================================================ 3. ⽆法正常启动================================================================================ MyEclipse启动遇到内部错误总启动不了的时便将Workspace下的.metadata⽬录删除重启即可================================================================================ 4. 标记断点:================================================================================在java视图中,直接在你要设置断点的那⾏的最左边,双击即可,右键的弹出菜单中也有这个选项Debug:选择debug(F11,Run菜单中的debug)即可,⾃动进⼊debug视图,⽤Step into(F5)能进⼊到被调⽤⽅法的跟踪⽤Step over(F6)进⾏单步调试================================================================================ 5. 更改 Web Project 的 Web Context-root:================================================================================右键点击Web项⽬->Properties->MyEclipse->Web在右边的界⾯的Context Root中可进⾏更改设置.如果在Tomcat没运⾏的时便修改⼀个以前已部署的Web应⽤的Web Context-root,此时MyEclipse会将以前此Web应⽤的部署删除如果在Tomcat运⾏着的时候,修改⼀个已部署后正在使⽤(存在正在访问的客户端)的Web应⽤的Web Context-root,MyEclipse不会将此Web应⽤的部署删除,⽽是出现⼀个黄⾊的感叹号图标.由于Web Context-root被更改此部署其实已失效,需要删除原来的部署,重新在Tomcat中"Add Deployment..."================================================================================ 6. ⽂件上传相关================================================================================⽂件上传路径,如果不写相对路径或绝对路径那么会存⼊D:\Program\Apache\apache-tomcat-6.0.18\bin⽬录================================================================================ 7. MyEclipse各种相关的⽂件格式的编辑器字体显⽰设置================================================================================ window->preference->General->Appearence->Colors and Fonts在其右边有这么⼏项Basic:Basic colors and fonts used throughout workbench dialogs and editors.基本上指所有对话框和编辑器中的字体,包括jsp,ant的xml等⽂件的字体显⽰.如果需要对XML等编辑器的字体进⾏设置,先设置这⾥,对于控制台的字体如果这⾥设置⼤了看着不舒服,可专门到Debug下设置控制台的字体.CVS:版本库相关的显⽰字体Debug:控制台的输出字体Java:Java源⽂件编辑器字体JavaScript:JavaScript字体Structured Text Editors:结构化⽂本的字体,如xml,xml schemal等Text Compare:⽂本⽐较器的字体View and Editor Folders:Colors and fonts used by the default Eclipse presentation.->Java Editor Text Font然后点Change================================================================================ 7-1. MyEclipse中UML图中的字体的设置================================================================================ window->preference->MyEclipse->UML1在右边的Nodes中,有Header font与Body font的设置.================================================================================ 8. 某⼀⽂件的存储字符编码设置================================================================================在Eclipse中不能保存中⽂时,可以设置⼀下Eclipse的编码⽅式为gbk等⽀持中⽂的字符编码⽅式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
提纲1前言2准备工作3介绍4Hibernate 一览5创建HibernateDemo 项目5创建HibernateDemo Java Project5555使用模版调整生成更好的代码55编辑映射文件6使用HQL 编辑器7测试HibernateDemo 应用8使用示例HibernateDemo 项目9总结1.前言本文档基于以下环境编写:Sun JDK 1.5,Eclipse 3.2和MyEclipse 5.0.所有的截屏基于Eclipse,MyEclipse Enterprise Workbench,和Windows XP 的默认用户界面设置.如果你对本文档的介绍有阅读上的困难,请阅读用户反馈部分来了解如何向MyEclipse 文档团队提交反馈.2.准备工作下面是这个快速入门的准备工作列表:Java 2SDK,Standard Edition 1.4或者更高版本(参考来了解下载地址)Eclipse 3.2SDK (参考资源来了解下载地址)MyEclipse 5.0(参考资源来了解下载地址)选择以下可以被Hibernate 和MyEclipse Database Explorer 所支持的数据库服务器列表中的一个:MyEclipse Hibernate 快速入门中文版3.介绍这个快速入门展示了使用MyEclipse Enterprise Workbench 开发Hibernate 的基本功能,概念和技术.我们将全程带领你来开发一个非常简单的Java Hibernate 应用.对于这个教程没有包含到的问题和概念,我们推荐你去参考资源部分列出的Hibernate 资源.这个文档展示了如何进行下列工作:为Java 项目添加MyEclipse Hibernate 支持在项目中创建Hibernate 配置文件如何使用自定义的Session Factory从Database Explorer 的表定义中生成Java 类和Hibernate 数据库映射文件(.hbm )•使用HQL 编辑器创建使用Hibernate 的小测试应用注意:在使用本教程时建议您事先阅读了Database Explorer 快速入门这个教程来了解如何创建连接和元数据功能.4.Hibernate 一览Hibernate 是一个非常流行的开源的易于配置和运行的基于Java 的对象-关系映射(JORM)引擎.它提供了很丰富的功能包括:多种映射策略可迁移的持久化单个对象映射到多个表支持集合多态关联可自定义的SQL 查询AxionHypersonic DBInstantDBInterclientFirebirdODBC BridgejTDSMckoi Microsoft SQL Server Mimer SQL MySQL Oracle Pointbase PostgresQL SAPDB Sunopsis XML SybaseThinkSQLHibernate使用Java编写,是高可配置的软件包,可以通过两种配置文件格式来进行配置.第一种配置文件名字为hibernate.cfg.xml.在启动时,Hibernate查询这个XML里面的属性来进行操作,例如数据库连接字符串和密码,数据库方言(database dialect),以及映射文件位置等.Hibernate在类路径中查找这个文件.第二种配置文件是映射描述文件(文件扩展名为*.hbm),它来指示Hibernate如何来将特定的Java类和一个或者多个数据库表格中的数据进行映射. MyEclipse提供了工具来处理这两种配置文件,并且可以将它们和你对数据库和Hibernate映射的Java类的修改进行同步.Hibernate可以用在任何需要将Java对象和数据库表格中的数据进行移动的Java应用中.因此,它在开发两层和三层的J2EE应用中很有用.向你的应用中集成Hibernate包括:向你的项目中安装Hibernate核心类和依赖的JAR类库创建hibernate.cfg.xml文件来描述如何访问你的数据库为每个持久化Java类创建单独的映射描述文件更多关于Hibernate的基本和高级特性,或者如何使用Hibernate进行开发,请查看页面下方的资源部分.5.创建HibernateDemo项目这一部分描述了创建名为HibernateDemo的简单的Java项目的过程,这个项目使用Hibernate来保存文本消息到一个单独的数据库表格中.因为多数企业的网络应用都是和企业关系数据库中的数据进行交互,我们将集中精力到编写Java数据对象和映射文件到现有的数据库.我们需要映射到Java类的这个数据库表格列在下面.为了方便测试,我们已经向数据库中添加了很多测试数据.echo_message DDLCREATE TABLE echo_message(id integer PRIMARY KEY not null,msg VARCHAR(255));insert into echo_message values(1,'hello world');insert into echo_message values(2,'goodbyeworld');一般的在你进行Hibernate开发之前你需要一个能够访问的Database Explorer连接配置.在这个教程中,我们使用Oracle 数据库连接配置,这个配置在Database Explorer快速入门教程中创建.注意:尽管这个快速入门使用了Oracle,但是这些步骤和上面的表格基本上是通用的,可以在任何数据库下工作.5.1创建HibernateDemo Java Project我们先来创建一个普通的名为HibernateDemo的Java项目,这个项目读取写入数据到echo_message数据库表.12从MyEclipse菜单栏选择File>New>Project>Java Project.接着会打开New Java Project向导.13输入HibernateDemo到Project name14在Project Layout下选中Create separate source and output folders单选钮.15选择Finish来完成这个页面,如图1所示16图1.新建HibernateDemo项目5.2添加Hibernate Capabilities到HibernateDemo项目现在HibernateDemo项目已经创建,我们将添加MyEclipse Hibernate功能到这个项目.这个基于向导的处理过程执行了下面的操作:•添加Hibernate类库(JARs)到项目的类路径.•在项目中创建并配置hibernate.cfg.xml•在项目中创建自定义的Session Factory类来简化Hibernate会话处理我们通过打开MyEclipse Add Hibernate Capabilities向导来开始:17在Package Explorer中选择HibernateDemo项目Capabilities......来启动向导(参考图2).18接下来,从MyEclipse菜单栏选择MyEclipse>Add Hibernate Capabilities图2.启动"Hibernate Support"向导图3.添加Hibernate支持到Java项目19保持Hibernate3.1specification选中不变.20选择你需要的类库集合,在这个示例中Core类库足够了. 21保持Add checked Libraries to project build-path选中.22选择Next.表-1.Hibernate Support 向导-第1页选项23第2页允许你自定义配置文件的名字和路径.图4.Hibernate 配置文件设置24保持New 选中.25完成图4中显示的页面然后选择Next.选项描述Hibernate Specification要添加到项目中的Hibernate 版本支持功能.为了最大限度的使用MyEclipse Hibernate 工具,推荐Hibernate 3.1.MyEclipse/User Libraries可以添加到你的项目的构造路径的类库集合.Add checked Libraries to projectbuild-path选中的类库将会添加到你的项目的构造路径中,但是相应的JAR 文件将不会复制到你的项目中.这些JAR 文件将会在发布程序时复制,这是推荐的设置方式.Copy checked Library Jars to projectfolder and add to build-path选中的类库JAR 文件将会被复制到你的项目并添加到构造路径中去.Library Folder 仅在上面的选项选中时可用.一个相对于项目的路径,可以新建或者使用现有目录,Hibernate 类库将会被向导复制到这里.图5.Hibernate数据库配置26保持Specify datasource connection details?选中.27选中Oracle配置,这个配置在Database Explorer快速入门设置过,通过DB Profile下拉框选择.这将自动填充当前页面中的所有输入框.注意:在这里数据库配置并非必须的;你可以手工输入所有需要的信息,不需要选择一个配置.在这种情况下,你必须确保在向导完成后手工复制JDBC驱动JAR文件到你的项目中.28选择Next.上面进行的数据源配置操作可以现在跳过,可以在随后的Hibernate Configuration编辑器中进修改.项目的最后一步是配置一个SessionFactory类,这个类将会访问Hibernate功能所生成的基础代码.本向导的截屏如图6所示.图6.创建SessionFactory 详细信息表3-Hibernate Support 向导-第3页选项29选中Create SessionFactory class .30选中包输入框右侧的New 按钮然后创建包com.genuitec.hibernate .31给Session Factory 类输入一个名字,我们使用默认推荐的HibernateSessionFactory .32完成如图6所示的页面,然后选择Finish .注意:Session Factory 也可以在稍后创建,通过Session Factory 向导来完成(File >New >Other MyEclipse >Hibernate >Hibernate Session Factory).如果你在第一页选中了复制类库到你的项目中,在向导完成之后的至多30秒内可能失去反应,因为它将复制类库并更新多种项目资源.请耐心等待并在进行其它操作之前等待过程的结束.这个向导结束后将进行下列操作:•如果在第一页选择了复制类库到你的项目,将安装Hibernate 类库(JARs)到项目中•更新项目的构造路径来包含已安装的Hibernate 类库选项描述Create SessionFactory Class?如果启用,向导将会创建一个Hibernate 会话工厂的新类.Java source folder决定新类将被创建到的源代码目录.Java package指定Session 工厂将被创建到的包名.Class name指定Session 工厂类的名字.Java Compliance Level生成的Session 工厂类的Java 编译器等级.•给项目创建并配置hibernate.cfg.xml文件•为你的项目创建一个自定义的SessionFactory类(例如HibernateSessionFactory)来简化Hibernate会话会话处理图7高亮显示了新创建的HibernateSessionFactory.java文件里面的重要功能.这个类管理了一个单独的Hibernate Session对象,通过getSession()方法进行延迟加载并且在调用closeSession()方法之后刷新并释放数据.在运行的时候,Hibernate会话创建过程必须要能够访问类路径里面的hibernate.cfg.xml文件.变量CONFIG_FILE_LOCATION 定义了文件hibernate.cfg.xml相对于包的路径.默认值通过Hibernate支持向导来提供.如果你改动了hibernate.cfg.xml文件的位置,你必须手工修改CONFIG_FILE_LOCATION的值来引用到新的文件的位置或者可以通过在使用之前调用setConfigFile()方法来设置为新的路径.图7.HibernateSessionFactory类5.3自定义Hibernate配置文件完成了5.2部分的配置向导后,Hibernate配置文件将会自动打开.如果你在添加功能过程中跳过了数据源连接的配置,你可以现在来完成它,也可以跳转到添加属性.自定义配置文件里面的需要连接到我们的数据库的信息.33选中Use JDBC Driver选项.我们将指定Database Explorer中的JDBC驱动.如果你尚未配置JDBC驱动,请阅读Database Explorer快速入门然后在进行下面的操作之前配置一个.34从Connection Profile下拉框中选中一个配置.如果你只是配置了JDBC驱动但是没有配置一个连接属性,你可以选择New Profile按钮来创建一个新的连接配置.如果你已经有了一个连接配置,当你选择其中的一个之后将会自动填充下面的4个输入框中的内.35点击Copy JDBC Driver and add to classpath...链接.36为你的数据库选中正确的Hibernate Dialect.你的配置页面将会显示为这样的内容:你可以使用Properties部分来添加和修改属性.图9.添加属性Mappings部分可以让你添加也许已经存在项目中的映射文件.另外,从Package Explorer拖放映射文件到这个输入框也可以达到同样的效果.图10.添加映射文件图11上述操作完成后的Hibernate配置文件的源代码.图11.Hibernate配置文件5.4创建Hibernate Java表映射这个部分展示了使用MyEclipse Hibernate工具来反向工程生成Java数据对象并从现有的数据库表格生成映射的过程.打开MyEclipse Hibernate透视图.从主菜单栏,选中Window>Open Perspective>Other>MyEclipse Hibernate选中你在Hibernae配置中所使用的数据库连接属性浏览数据库的目录结构,直到你找到了一个想要创建Hibernate映射的表格/实体注意:在我们的例子里我们使用了TEST数据库下的ECHO_MESSAGE表格;对于其它数据库和表格的操作过程基本上都是一样的.右键点击表格然后选中Hibernate Reverse Engineering,如图12所示.这将启动Hibernate Reverse Engineering向导.另外,你也可以从DB Browser那里拖动表格,然后将它放到Hibernate配置编辑器里也可以启动这个向导.注意:你可以在DB Browser中选中多个表格然后同时对它们进行反向工程.Hibernate Reverse Engineering向导一共有3页.图13.Hibernate Reverse Engineering向导-页面137点击Java src folder右侧的Browse...按钮来查看可用的Hibernate项目以及源码目录,这些目录将用来存放最终生成的文件.选择HibernateDemo项目中的src文件夹.38点击Java package输入框右侧的Browse...按钮然后选中包com.genuitec.hibernate完成如图13所示的向导中的其余的内容然后选择Next.注意:向导的第2页和第3页用来自定义反向工程处理过程.当然也可以现在就直接点击Finish按钮开始处理过程,不描述对后两页的设置进行任何自定义.表4-Hibernate ReverseEngineering向导-第1页选项Java src folder选中映射文件,POJO和DAO生成后所在的项目和源码文件图14.Hibernate Reverse Engineering 向导-第2页夹.Java package映射文件,POJO 和DAO 生成后所在的包.Hibernate mapping file从选中的表格生成映射文件.Update hibernateconfiguration将生成后的映射文件添加到Hibernate 配置文件中.Java Data Object为映射文件和表格生成对应的数据对象(POJO).Create abstract class为每个数据对象生成一个抽象的父类.这个抽象类将在以后的重新生成过程中覆盖掉,但是对应的子类将不会被覆盖掉.Base persistence class如果需要的话,输入生成的POJO 所要集成的父类的完整名称.Java Data Access Object生成便于访问映射后的类和表格的数据访问对象.用户可以在Basic,Spring 和JNDI DAO 中选择一种.Generate precise findBymethods为映射类中的每个属性生成一个"findBy"方法.例如findByFirstName("name");Use custom templates覆盖MyEclipse 的内部velocity 模版为你自己的版本.参考使用模版来更好的调节生成的代码来获取更多信息.Template directory 包含了自定义模版的目录树的根节点.第2页可以使用默认的设置,选择Next.表5-Hibernate Reverse Engineering向导-第2页选项描述Rev-eng settings file 这个文件包含了反向工程的配置和选项以供以后使用.点击Setup...按钮来选择现有的文件或者创建一个新的文件.如果找不到一个这样的配置文件的话向导将会自动创建此文件.Custom rev-eng strategy 允许你指定一个自定义的反向工程策略类.这个类允许你用编程的方式来自定义反向工程处理过程的各个方面.参考使用自定义反向工程策略来获取详细信息.Type Mapping 决定是否在类型映射属性中使用Java或者Hibernate类型,例如ng.String对应string.这个设置只能在向导第3页的Customized Type Mappings列表中没有指定更多信息时才能使用.ID Generator ID Generator是Hibernate映射文件必须有的内容.它定义了持久类实例的唯一主键生成器Jaav类.参考资源部分里面的Hibernate文档链接,里面描述了每个ID生成器的详细信息.如果留空或者更详细的配置在这个向导的第3页没有配置, Hibernate映射引擎将自动为你选择一个ID生成器.Generate basic typed composite IDs 如果数据库表格包含有多个列的主键,将总是使用<复合主键>映射.如果这个选项启用并且有对应的多个外键,每个主键列将依然会被作为'简单的'标量(string,long,等),而不是引用到一个实体.将会创建<many-to-one>元素,但是它们将会标记为非可更新和非可插入的字段.如果你禁用这个选项(默认推荐用这种方式),将会创建<key-many-to-one>元素来代替上面的生成内容.Generate version and timestamp tags 如果启用,名为"version"和"timestamp"的列将会在生成的映射文件中作为<version>和<timestamp>标记出现.Customized Type Mappings 允许你来指定一个自定义的JDBC类型到Hibernate类型的转换,使用Length,Scale,Precision和Nullability作为精度控制对应原来的JDBC类型.再第3页页可以使用默认的设置,选择Finish将启动反向工程处理.描述在这个向导完成之后将会进行下面所列的操作:创建类AbstractEchoMessage .这个抽象类提供了所需的Hibernate 兼容的功能例如public 的读取器和设置器方法,这些方法对应的持久化属性和ECHO_MESSAGE 数据库表格中的列相对应.图15.Hibernate Reverse Engineering 向导-第3页表6-Hibernate Reverse Engineering向导-第3页选项Class name对应当前数据库表格的数据对象类的完整名称.ID Generator想要对当前表所使用的ID 生成器.JDBC type对当前列所使用的JDBC 类型覆盖.Property name对应当前列所生成的属性名.Hibernate type对应当前列的Hibernate 类型.Include referenced /referencing tables包含反向工程时当前数据库表引用的表格以及其它引用到当前表的数据库表.Generate support for ListedTable(fk)->UnlistedTable and UnlistedTable(fk)->ListedTable 生成关联到当前表格的关联表的尚未反向工程过的代码,这些表在当前配置页面尚未被显示.创建了一个EchoMessage Java类,是AbstractEchoMessage类的一个具体的子类.EchoMessage的目的是为了被修改后提供额外的业务和验证逻辑,并且不会被后续的生成代码过程所覆盖.创建了EchoMessage.hbm.xml Hibernate映射描述符.这个文件指示Hibernate如何将EchoMessage Java类和ECHO_MESSAGE数据库表格中的数据相互映射.在文件hibernate.cfg.xml中注册EchoMessage.hbm.xml映射描述符.•创建了Java类EchoMessageDAO.这个类提供了对EchoMessage数据对象类的方便的访问和操作.•创建IBaseHibernateDAO接口和BaseHibernateDAO类.这些类对基本的DAO来说是必要的,因为它使用了添加Hibernate功能时候所生成的Session工厂类(com.genuitec.hibernate.HibernateSessionFactory)来获取Hibernate会话.图15高亮显示了所生成的类,关键方法和映射文件,以及被添加到hibernate.cfg.xml文件中的对生成的映射文件的引用.图15.Hibernate反向工厂向导执行结束后更新过的项目内容5.5使用模版调整生成更好的代码•下载并解压缩这个文件到你的电脑的文件系统上.•按照README.txt文件中的说明来自定义这个模版.•调用反向工程向导,在第1页选择启用Use custom templates选项,然后将Template directory指向到包含模版树的文件夹e.5.6使用自定义反向工程策略o向你的项目中添加MyEclipse Persistence Tools类库.右键点击你的项目然后选择Properties.o在Java Build Path页面,在Libraries面板下选择Add Library....o选择MyEclipse Libraries,接着选中MyEclipse Persistence Tools.o点击Finish.39图16.添加MyEclipse Persistence Tools类库40在你的项目中创建一个新类,让这个类继承自org.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy类.41图17.MyStrategy.java 源代码清单42在反向工程向导的第2页,选中刚才所创建的类图18.指定反向工程策略5.7编辑映射文件MyEclipse 包含了定制过的XML 编辑器来专门用于修改Hibernate 映射文件(*.hbm.xml).当双击映射文件的时候编辑器将会自动打开.你也可以通过右键点击文件然后选择Open With >MyEclipse Hibernate Mapping Editor.功能•超链接浏览到引用到的类和属性.•类名自动完成提示.•属性名自动完成提示.•映射文件元素,属性和值的内容完成提示.定义一个单参数的构造器,然后覆盖其中的感兴趣的一个或者多个方法,例如,columnToPropertyName .这里是一个例子,将在所有生成的属性前添加一个"ME_"前缀.MyStrategy.javapackage com.genuitec.hibernate;import org.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy;import org.hibernate.cfg.reveng.ReverseEngineeringStrategy;import org.hibernate.cfg.reveng.TableIdentifier;public class MyStrategy extends DelegatingReverseEngineeringStrategy {public MyStrategy(ReverseEngineeringStrategy strategy){super (strategy);}public String columnToPropertyName(TableIdentifier table,String columnName){return "ME_"+super.columnToPropertyName(table,columnName);}}图19.Hibernate映射文件编辑器6.使用HQL编辑器MyEclipse包含了一个Hibernate查询语言编辑器以及几个视图,允许你根据当前的Hibernate配置来执行HQL查询语句.功能•内容自动完成提示.•Hibernate Dynamic Query Translator在敲入HSQL查询语句时查看翻译后的SQL语句.•Hibernate Query Results视图可以查看多个查询结果集;结果的属性显示在Properties视图.•Query Parameters视图可以很方便的执行带有参数的查询.•项目选择器允许你随时切换不同的Hibernate项目中的Hibernate配置.下面的步骤将指导你如何使用HQL编辑器43右键点击Package Explorer中的HibernateDemo项目.44在右键菜单中的MyEclipse项目下,选择Open HQL Editor...注意:HQL编辑器也会在你尝试查看后缀为hql的文件的时候打开.图20.打开HQL编辑器45如果你没有在Hibernate透视图下工作,你将会被提示切换到相应的视图,同意切换即可.注意:总是可以切换到这个视图,通过选择菜单项Window>Open Perspective>Other>MyEclipse Hibernate 46当编辑器打开时,键入"from EchoMessage"47点击Run图标或者按下Ctrl+F9来执行查询语句.图21.在HSQL编辑器中执行查询48使用Query Parameters视图来执行带参数的查询.图22.Query Parameters视图49注意:如果你在HSQL编辑器为特定的项目初始化后修改了配置,映射文件或者数据类,一定要记得点击嵌入的工具栏上的Refresh按钮来让编辑器使用最新的配置信息.7.测试HibernateDemo应用既然Hibernate持久化功能已经整合进了HibernateDemo项目,接下来的步骤就是对它进行测试.一种测试Hibernate持久化功能的方法是创建一个带main方法的Java类.测试类将使用Hibernate向导所生成的Java对象和HibernateSessionFactory.请查看图18中所示的HibernateSessionFactory类中所生成的两个重要的方法,在测试代码中将会使用这两个方法.显示了HibernateSessionFactory中的两个重要的静态方法.getSession():这个方法将会返回一个Session变量,可以用来访问Hibernate Session类.任何时间你想使用Hibernate会话的时候你都可以调用这个方法来获取缓存过的这个Hibernate会话对象.closeSession():如果一个会话已经启动过,这个方法就简单的关闭它.图23.HibernateSessionFactory方法下面是创建测试类源代码的步骤列表:创建一个新的Java类:File>New>Class输入包名输入类名(Name):HibernateReadTest如图19所示完成页面设置,然后选择Finish图24.新建Java测试类接下来,打开文件HibernateReadTest.java,替换源代码为图20中所列的内容.HibernateReadTest.javapackage com.genuitec.hibernate;import org.hibernate.HibernateException;public class HibernateReadTest{public static void main(String[]args){//Step1-Create the DAOEchoMessageDAO dao=new EchoMessageDAO();try{//Step2-Use findById to retrieve the message with ID=1EchoMessage echoMessage=dao.findById(newLong(1));System.out.println("Entity retrieval successful,messageis:"图25.HibernateTest.java 源代码清单保存HibernateReadTest.java在Package Explorer 中选中文件HibernateReadTest.java在顶部菜单栏中选择Run 菜单,接着选择Run >Run as >Java Application这是,Console 视图将会打开,如果测试成功的话你将会看到如下面的图21所示的输出内容.注意:如果你看到了log4j 警告,你可以忽略它们即可.图26.HibernateReadTest Console 输出8.使用示例HibernateDemo 项目50下载51选择Import >Existing Projects into Workspace ,选中Select archive file 选项然后指向下载的zip 文件.点击Finish 来导入到你的Eclipse 工作台.52需要做以下修改来重新配置这个项目和你的开发环境保持一致.o 从你的数据库复制JDBC 驱动JAR 文件到项目中.通过右键点击文件然后选择Build Path >Add toBuild Path 来将它添加到项目的构造路径中.o 连接到你的数据库然后执行DDL/DDL.sql 文件中的代码来创建示例数据库并填充里面的值.在执行之前,也许需要修改表格的数据库前缀并使它和你的数据库的DDL 规范一致.o 修改配置文件hibernate.cfg.xml ,将里面的连接设置修改为你自己的数据库配置.还可能需要修改EchoMessage.hbm.xml 来修改class 元素里面指定的schema 属性为对应的数据库名称.一些其它的文件已经包含在这里:log4j.properties 用来控制log4j 类库里面的日志等级.ehcache.xml 用来控制ehcache 类库.HibernateWriteTest.java 是一个简单的演示类来展示DAO 是如何写入数据到数据库的.+echoMessage.getMsg());}catch (HibernateException e){System.err.println("Entity retrieval failed.");e.printStackTrace();}finally {try {dao.getSession().close();}catch (Exception e){//do nothing}}}}9.总结使用MyEclipse进行Hibernate开发的教程到此结束.我们还有更多的快速入门文档,包括如何使用Database Explorer, Struts,JSF,Web Projects,修改,应用服务器配置,EJB开发,以及企业应用项目.更多信息请访问MyEclipse Quickstart library.。