您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Hibernate 笔记
4.Hibernate介绍Hibernate是一个JDO工具。它的工作原理是通过文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的。例如,使用Hibernate的查询,可以直接返回包含某个值对象的列表(List),而不必向传统的JDBC访问方式一样把结果集的数据逐个装载到一个值对象中,为我们的编码工作节省了大量的劳动。Hibernate提供的HQL是一种类SQL语言,它和EJBQL一样都是提供对象化的数据库查询方式,但HQL在功能和使用方式上都非常接近于标准的SQL。在早期的Java数据库和网站开发中,开发人员通过java.sql包里面的各式各样的类来操作数据库;你甚至可以记起来自己当时怎么写的.编写的方式基本上就是通过DriverManager获取Driver,创建Connection,使用Connection,正确处理异常,关闭连接等等.这种情况下常见问题包括忘记关闭数据库连接,或者运行一段时间后出现了连接异常.几年之后连接池成了个大话题因为它可以让开发人员不用再关心创建和管理(关闭)数据库连接,这样可以集中精力于他们的SQL和ResultSet分析代码中.这样,我们几乎解决了长时间运行的应用程序里面的连接异常的问题.然而,还是经常能看到成百上千行的代码来生成一段查询数据的SQL然后分析ResultSet来填充查询结果.又是几年过去了,某些人产生了一个想法:自动将ResultSet里面的结果直接映射成Java对象,这解决了大部分的像模版一样的重复多余的分析结果集的代码.这时候Java数据库开发已经前进了好几步,已经变得相对很容易了.在这些基础之上,Hibernate出现在我们的面前.Hibernate带来的想法不仅仅是自动化这些过程,而且在内存中管理对象的状态,它来关心什么时候以及如何将对象值读取或者写入数据库.忽然的,所有的开发人员都在完全使用对象(或者映射的对象)并且让Hibernate来处理其它的事情.开发人员完全不再需要编写JDBC和SQL代码(译者注:这只是用对象方式设计数据库的新项目中才可以,OR这个词限定了它的适用范围,并不是什么项目都能用Hibernate的).现在他们通过持久化框架的代码来代替过去所写的那些复杂的代码.在Hibernate出现的时候,其它的可用的持久化技术包括EJB2.x.Hibernate的适时出现,易用性,以及大量开发人员的支持导致它很快在Java开发领域声名雀起.在这个教程中,我们将会看一看如何使用MyEclipse开发Hibernate来简化开发过程,甚至比单独使用Hibernate更方便.事实上,MyEclipse通过在短短几秒内生成Java应用的持久层的代码,不需要你来编写任何Hibernate映射或者配置文件.我们通过创建一个简单的数据库开始,稍后这个数据库将会被反向工程来生成到一个启用了Hibernate的项目中.接下来,我们将会编写一些简单的Java代码来使用MyEclipse所自动生成的Hibernate代码来存储,读取以及更新数据库中的信息.开始工作:工作环境:MyEclipse6.0;hibernate3.2;oracle9i;要在MyEclipse中开始使用Hibernate和Spring,首先我们需要有一个数据库连接来供程序来使用.我们来完成第一个hibernate程序。为下列表完成hibernate映射。在oracle数据库中创建一个person表。createtablePERON(IDVARCHAR2(32)notnullprimarykey,NAMEVARCHAR2(20)notnull,PASSWORDVARCHAR2(20)notnull,SEXVARCHAR2(2),EMAILVARCHAR2(30));这时数据库中的数据已经创建完毕。然后我们利用MyEclipse6.0就可以完成我们的任务。一、:安装jdk;二、:在MyEclipse上创建hibernate在MyEclipes视图下新建项目打开MyEclipse6.0开发界面,如图在菜单栏中,依次单击File---New---WebProject建立一个Web工程。在该对话框的“ProjectName”文本框内输入工程名称,这里的工程名称为“HOWebProject”,其他文本框保持默认设置即可,如下图所示。单击完成,完成新建项目的工作。二·将数据库驱动包导入MyEclipes中本例子主要应用oracle9i作为数据库驱动包,将其导入MyEclipes的具体步奏如下。找到oracle9i数据库驱动包所在的位置,一般为X:\oracle\ora92\jdbc\lib\classes12.Zip将12classes12.Zip拷贝到lib文件夹内如图右单击HOWebProject--BuildPath--ConfigureBuildPath进入到下面的对话框中。左边选择JAVABuildPath,选择Libraries选项卡,然后选择选中classes12.zip单击OK。出现“奶瓶”后单击完成。这时已经将oracle9i数据库驱动包导入MyEclipes中。如下图所示。三·在hibernate视图模式下建立数据库连接在MyEclipes的主窗口中,单击按钮,将弹出选择视图快捷菜单,选择“MyEclipseHibernate”菜单项,进入Hibernate视图工作模式,在DBBrouser工作域中,单击鼠标右键弹出New快捷菜单,如图所示单击后进入DatabaseDriver对话框在中:选择在中:自己任意起名字。在中:jdbc:oracle:thin:@localhost:1521:oradb蓝色位置:写Localhost是因为本机做为服务器红色位置:因为服务名(sid)是oradb,所以红色位置写sid在中:写你在数据库中创建的用户的名字。在中:写此用户对应的密码.在中:加入数据库驱动文件。选导入驱动在中:选填好后如图。点击Next,将打开选择数据库对话框。在该对话框中,选Displaytheselectedschemas单击,打开数据库提示信息对话框,在Enteryourpassword中重新输入密码。单击OK按钮,将打开选择数据库对话框,选择你自己所创建的用户,单击ok.回到选择数据库对话框。单击完成,完成hibernate视图下的建立数据库的连接工作。这时在DBbrowser视图下显示如图。右单击执行出现OpenDatabaseConnection对话框。输入用户密码Ok。此时数据库中“pp1984”用户的存储表全部映射到其中。四·在J2EEDevelopment视图模式下建立存放类的包文件夹切换到MyEclipseJavaEnterprise视图下右键单击src新建一个包起一个包名字。(我起的是com。fornBean)完成,五·将hibernate3.2类库构建到MyEclipse中在MyEclipse的菜单栏中,依次单击Window--Preferences,打开了对话框。在从中依次展开“Java--BuildPath--UserLibraries”选New打开了“新建用户库”对话框,输入hibernate3.2,确定。如下图选中按找到hibernate3.2包后将导入,然后将lib包中所有的jar文件导入。导入输入oracle数据库包方法同上。确定后如图所示。六·将Hibernate3.2类库引入到工程中右击工程名MyEclipes--出现下图对话框,按照下图进行配置。然后Next默认进行下图继续next;这时在中选择前面的数据库连接出现下图后,将CreateSessionFactoryclass选没(步创建SessionFactoryclass)完成从此hibernate一起准备就此完成。下面我们进行开发一、开发POJO类(只包含setter和getter方法的类)注意POJO类的名称最好要与表名称一致。在com.fornBean包中创建Person类内容代码如下:packagecom.fornBean;//POJO类publicclassPerson{privateStringid;privateStringname;privateStringpassword;privateStringsex;privateStringemail;publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}publicStringgetSex(){returnsex;}publicvoidsetSex(Stringsex){this.sex=sex;}publicStringgetEmail(){returnemail;}publicvoidsetEmail(Stringemail){this.email=email;}}七·生成映射文件我们要对pp1984用户中的Person表进行操作,那么我们必须对它映射,右单击Person--》hibernateReverseEnginneering.选择包源单击Browse进入选中com.fornBean完成。按下图进行配置。点击next按下图进行配置,单击完成。完成后如下图所示在com.fornBean包内添加一个类PersonOperate,它是具体操作hibernate方法的。packagecom.fornBean;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.hibernate.Transaction;importorg.hibernate.cfg.Configuration;//具体操作hibernate的类publicclassPersonOperate{privateSessionsession=null;publicPersonOperate(){Configurationconfig=newConfiguration().configure();SessionFactoryfactory=config.buildSessionFactory();this.session=factory.openSession();}publicvoidinsert(Personp){Transactiontran=this.session.beginTransaction();this.session.save(p);tran.commit();}}在con.fornBean包中再做一个测试类(主函数在里面)TestPopackagecom.fornBean;publicclassTestPO{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubPersonp=newPerson();p.setId(1);p.setName(pangziheng);p.setPassword(123);p.setSex(男);p.setEmail(skjdif@dji);PersonOperateop=newPersonOperate();op.insert(p);}}最后运行Textpo类,完成插入数据
本文标题:Hibernate 笔记
链接地址:https://www.777doc.com/doc-6077612 .html