|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。这篇文章是上篇文章《Eclipse疾速上手Hibernate--1.进门实例》的持续,次要说的是怎样使用Hbm映照文件发生一般的Java对象及数据表。能够参考Hibernate自带的文档《HIBERNATE-切合Java习气的干系数据库耐久化》的第15章--《工具箱指南》一节。一样,这篇文章没有过量谈实际,只是给出了一个完全的实例加以申明。相干设置请参考上篇文章。1.创立项目·新建一个Java项目:HibernateBegin_2,注重选中“创立独自的源文件夹和输入文件夹”,同时增加“用户库”:hibernate。2.映照文件User.hbm.xml·新建一个包,包名:javamxj.hibernate,然后在此包下新建一个文件,文件名:User.hbm.xml。User.hbm.xml
<?xmlversion="1.0"encoding="GBK"?><!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD//EN""http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"><hibernate-mapping><classname="javamxj.hibernate.User"table="UserTable2"><metaattribute="class-description">运转Hbm2Java义务,使用hbm.xml文件天生Java类文件@authorjavamxj(分享java康乐)@linkBlog:htpp://javamxj.mblogger.cnhtpp://blog.csdn.net/javamxj/</meta><idname="id"type="string"unsaved-value="null"length="32"column="ID"><generatorclass="uuid.hex"/></id><propertyname="username"type="string"not-null="true"length="24"><metaattribute="field-description">@param用户名</meta></property><propertyname="password"type="string"not-null="true"><columnname="暗码"length="24"not-null="true"></column></property></class></hibernate-mapping>
●与上篇文章中的User.hbm.xml文件对照,能够发明标签上增添了很多分外的设定。·这里<meta>标签中的内容将拔出到类的javadoc申明往。·<id>标签利用uuid.hex来界说主键的发生算法,UUID算法利用IP地点、JVM的启动工夫、体系工夫和一个计数值来发生主键。·<property>标签中的<column>用于天生数据表中的列。3.构建文件Build.xml·将上篇文章中的“hibernate.cfg.xml”设置文件复制到src目次下。·在项目根目次下创建一个build.xml,这个文件含有四个义务,这里会用到“generate-code”、“schemaexport”两个义务,至于用法能够看正文。要注重情况变量的设置要切合本人的实践设置,好比库文件目次的设置是"D:/java/Hibernate/lib",是相沿上篇文章中的设置。
build.xml
<?xmlversion="1.0"encoding="GBK"?><projectname="使用工具开辟Hibernate"default="help"basedir="."><!--******情况设置,能够依据本人的实践设置自行变动*****--><!--源文件目次,能够经由过程项目->属性->Java构建路径变动--><propertyname="src.dir"value="./src"/><!--输入的class文件目次,能够经由过程项目->属性->Java构建路径变动--><propertyname="class.dir"value="./bin"/><!--库文件目次--><propertyname="lib.dir"value="D:/java/Hibernate/lib"/><!--界说类路径--><pathid="project.class.path"><filesetdir="${lib.dir}"><includename="*.jar"/></fileset><pathelementlocation="${class.dir}"/></path><!--**************************************************************--><!--利用申明--><!--**************************************************************--><targetname="help"><echomessage="使用工具开辟Hibernate"/><echomessage="-----------------------------------"/><echomessage=""/><echomessage="供应以下义务:"/><echomessage=""/><echomessage="generate-code-->运转Hbm2Java,使用hbm.xml文件天生Java类文件"/><echomessage="generate-hbm-->运转HibernateDoclet,天生Hibernate类的映照文件"/><echomessage="schemaexport-->运转SchemaExport,使用hbm.xml文件天生数据表"/><echomessage=""/></target><!--**************************************************************--><!--Hbm2Java义务--><!--**************************************************************--><targetname="generate-code"><echomessage="运转Hbm2Java义务,使用hbm.xml文件天生Java类文件"/><taskdefname="hbm2java"classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"classpathref="project.class.path"></taskdef><hbm2javaoutput="${src.dir}"><filesetdir="${src.dir}"><includename="**/*.hbm.xml"/></fileset></hbm2java></target><!--**************************************************************--><!--HibernateDoclet义务--><!--**************************************************************--><targetname="generate-hbm"><echomessage="运转HibernateDoclet,天生Hibernate类的映照文件"/><taskdefname="hibernatedoclet"classname="xdoclet.modules.hibernate.HibernateDocletTask"classpathref="project.class.path"></taskdef><hibernatedocletdestdir="${src.dir}"excludedtags="@version,@author,@todo"force="true"encoding="GBK"verbose="true"><filesetdir="${src.dir}"><includename="**/*.java"/></fileset><hibernateversion="2.0"xmlencoding="GBK"/></hibernatedoclet></target><!--**************************************************************--><!--SchemaExport义务--><!--**************************************************************--><targetname="schemaexport"><echomessage="运转SchemaExport,使用hbm.xml文件天生数据表"/><taskdefname="schemaexport"classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask"classpathref="project.class.path"></taskdef><schemaexportconfig="${src.dir}/hibernate.cfg.xml"quiet="no"text="no"drop="no"output="schema-export.sql"></schemaexport></target></project>
·最初的目次布局以下:4.运转义务·右击“build.xml”->“运转”->这里应当有“Ant构建”和“Ant构建...”两个菜单,个中“Ant构建”间接运转缺省义务,这里是指“help”义务;假如要运转别的的义务,能够经由过程“Ant构建...”菜单选择。·这里另有一种更好的办法,Eclipse主菜单上点击“窗口”->“显现视图”->点击“Ant”,如许就修改了Ant视图,在这个视图窗口的空缺处,右击,在弹出菜单当选择“增加构建文件”,然后将HibernateBegin_2项目根目次下的“build.xml”文件载进便可。效果如图:如许,想运转某个义务,间接双击Ant视图中的义务便可。●天生User.java·双击“generate-code”义务,在把持台应当能够看到以下输入:·假如在src目次下没有看到“User.java”这个文件,那末选中src目次,然后按一下“F5”功效键革新一下src目次,应当能够在包“javamxj.hibernate”下看到“User.java”。这个文件就是“Hbm2Java”天生器依据hbm文件发生的,以下:
User.java
packagejavamxj.hibernate;importjava.io.Serializable;importorg.apache.commons.lang.builder.ToStringBuilder;/****运转Hbm2Java义务,使用hbm.xml文件天生Java类文件*@authorjavamxj(分享java康乐)*@linkBlog:htpp://javamxj.mblogger.cn*htpp://blog.csdn.net/javamxj/**/publicclassUserimplementsSerializable{/**identifierfield*/privateStringid;/**persistentfield*/privateStringusername;/**persistentfield*/privateStringpassword;/**fullconstructor*/publicUser(Stringusername,Stringpassword){this.username=username;this.password=password;}/**defaultconstructor*/publicUser(){}publicStringgetId(){returnthis.id;}publicvoidsetId(Stringid){this.id=id;}/***@param用户名*/publicStringgetUsername(){returnthis.username;}publicvoidsetUsername(Stringusername){this.username=username;}publicStringgetPassword(){returnthis.password;}publicvoidsetPassword(Stringpassword){this.password=password;}publicStringtoString(){returnnewToStringBuilder(this).append("id",getId()).toString();}}
能够对比“User.hbm.xml”文件,看看都是哪些属性转化成甚么代码。●天生数据表·启动MySql,应当断定含有HibernateTest数据库,不外此次不必要创建数据表了。·双击“schemaexport”义务,把持台输入以下,注重主动天生的SQL语句:·同时,在项目根目次下,也会发生一个“schema-export.sql”文件(假如没有,按F5键革新目次),这个文件是在“build.xml”中设定的:schema-export.sqldroptableifexistsUserTable2createtableUserTable2(IDvarchar(32)notnull,dddvarchar(24)notnull,暗码varchar(24)notnull,primarykey(ID))·切换到数据库中,会发明已主动发生了数据表usertable2:5.测试程序好了,将上篇文章中的test.java文件复制到包“javamxj.hibernate”下,然后右击运转这个文件,能够看到数据表中天生的数据。小结好了,再来看看全部项目标布局,个中“User.java”和“schema-export.sql”两个文件都是主动天生的,要注重的一点是:天生“schema-export.sql”文件必要挪用“User.java”文件,以是“generate-code”义务要在“schemaexport”义务前实行。最好利用XMLBuddy插件来编纂xml文件,能够参考:关于怎样使用Hbm映照文件发生一般的Java对象及数据表,还必要多看看参考文档,也要多加实习,在理论中把握,在理论中行进。下篇文章漫谈谈使用XDoclet开辟Hibernate。
还得说上一点,就java本质而言,是面相对象的,但是你有没有发现,java也不全是,比如说基本类型,int,那他就是整型而不是对象,转换类型是还得借助包装类。 |
|