<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Hibernate---通過XDoclet(ant)生成Hibernate映射文件(轉(zhuǎn)載)

    通過XDoclet可以我們的精力放在編寫java源文件上。

    具體來說就是:
    只有Java: java--->XDoclet(hibernatedoclet)--->Hbm---->SchemaExport(schemaexport,hbm2ddl)---->數(shù)據(jù)表

    1:java源文件編寫

    /*
    ?*?Created?on?2006-4-7
    ?
    */


    package ?com.entity;

    /**
    ?*?
    @author ?jkallen
    ?*?@hibernate.class?lazy="true"?table="syn_dept"
    ?*?@hibernate.cache?usage="read-write"
    ?
    */

    public ? class ?SynDepartment? {
    ?
    ?
    /** ?主鍵?id */
    ?
    private ?Long?id;
    ?
    /** ?部門名稱 */
    ?
    private ?String?code_name;
    ?
    ?
    /**
    ??*?
    @return ?Returns?the?id.
    ??*?@hibernate.id?generator-class="native"?column="id"
    ??
    */

    ????
    public ?Long?getId()? {
    ??
    return ?id;
    ?}

    ?
    public ? void ?setId(Long?id)? {
    ??
    this .id? = ?id;
    ?}

    ?
    /**
    ????*?
    @return ?Returns?the?code_name.
    ????*?@hibernate.property?column?=?"code_name"
    ????
    */

    ?
    public ?String?getCode_name()? {
    ??
    return ?code_name;
    ?}

    ?
    public ? void ?setCode_name(String?code_name)? {
    ??
    this .code_name? = ?code_name;
    ?}

    }




    這里用到了幾種@hibernate標(biāo)記的用法
    @hibernate.class標(biāo)記指定類的映射代碼,lazy="true" table="syn_dept"則如
    hibernate的映射文件class元素的屬性值具有相同的意義
    @hibernate.id標(biāo)記指定類的OID映射代碼
    @hibernate.property標(biāo)記指定類的屬性映射代碼
    另外還可能用到@hibernate.set(如一對(duì)多的情況下)

    2:XDoclet--->Hbm(寫在build.xml文件中,ANT運(yùn)行)

    < target? name ="toHbm" ?
    ??depends
    ="compileEntity" ?
    ??description
    ="Generate?hibernate?mapping?documents" >
    ??
    < hibernatedoclet? destdir ="${generated.dir}" >
    ???
    < fileset? dir ="${src.dir}" >
    ????
    < include? name ="**/entity/*.java" ? />
    ???
    </ fileset >
    ???
    < hibernate? version ="2.0" ? />
    ??
    </ hibernatedoclet >

    ??
    < copy? todir ="${classes.dir}" >
    ???
    < fileset? dir ="${generated.dir}" ? />
    ??
    </ copy >
    ?
    </ target >


    通過hibernatedoclet就可以生成SynDepartment.hbm.xml映射文件
    fileset顧名思義就是過濾文件了。
    注:compileEntity--編譯java源文件(自定義)

    3:SchemaExport---->數(shù)據(jù)表

    < target? name ="toddl" ?depends ="init" >
    ??
    < schemaexport? properties ="${classes.dir}/hibernate.properties" ?
    ???quiet
    ="no" ?text ="no" ?drop ="no" ????
    ???delimiter
    ="&#xd;&#xa;go&#xd;&#xa;" ?output ="${sql.dir}/${synup.sql.file}"
    ???
    >
    ???
    < fileset? refid ="hibernate.synup.mapping.files" ? />
    ??
    </ schemaexport >
    ??
    < echo? message ="Output?sql?to?file:?${sql.dir}/${sql.file}" ? />
    ?
    </ target >
    ?
    < fileset? id ="hibernate.synup.mapping.files" ?dir ="${classes.dir}" >
    ??
    < include? name ="**/entity/*.hbm.xml" ? />
    ?
    </ fileset >


    ?通過schemaexport就向DB中生成table了。其中可能用到如下的一些屬性:
    ?quiet:如果為yes,表示不把子DDL腳本輸出到控制臺(tái)
    ?drop:如果為yes,只執(zhí)行刪除數(shù)據(jù)庫(kù)中的操作,但不創(chuàng)建新的表
    ?text:如果為yes,只會(huì)生成DDL腳本文件,但不會(huì)在數(shù)據(jù)庫(kù)中執(zhí)行DDL腳本
    ?output:指定存放DDL腳本文件的目錄
    ?config:設(shè)定基于XML格式的配置文件, hbm2ddl(schemaexport)工具從這個(gè)文件中讀取數(shù)據(jù)庫(kù)的配置信息
    ?properties:設(shè)定基于java屬性文件格式的配置文件,hbm2ddl(schemaexport)工具從這個(gè)文件中讀取DB的配置信息
    ?format:設(shè)定DDL腳本中SQL語(yǔ)句的格式
    ?delimiter:為DDL腳本設(shè)置行結(jié)束符
    ?
    ?在ANT中執(zhí)行:
    ?<target name="initOnlySynup" depends="toHbm,toddl">
    ?</target>
    ?
    ?OK,最后生成的映射文件如下:

    <? xml?version="1.0" ?>

    <! DOCTYPE?hibernate-mapping?PUBLIC
    ????"-//Hibernate/Hibernate?Mapping?DTD?2.0//EN"?
    ????"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
    >

    < hibernate-mapping >
    ????
    < class
    ????????
    name ="com.SynDepartment"
    ????????table
    ="syn_dept"
    ????????dynamic-update
    ="false"
    ????????dynamic-insert
    ="false"
    ????
    >
    ????????
    < cache? usage ="read-write" ? />

    ????????
    < id
    ????????????
    name ="id"
    ????????????column
    ="id"
    ????????????type
    ="java.lang.Long"
    ????????
    >
    ????????????
    < generator? class ="native" >
    ????????????
    </ generator >
    ????????
    </ id >

    ????????
    < property
    ????????????
    name ="code_name"
    ????????????type
    ="java.lang.String"
    ????????????update
    ="true"
    ????????????insert
    ="true"
    ????????????access
    ="property"
    ????????????column
    ="code_name"
    ????????
    />

    ????????
    <!--
    ????????????To?add?non?XDoclet?property?mappings,?create?a?file?named
    ????????????????hibernate-properties-SynDepartment.xml
    ????????????containing?the?additional?properties?and?place?it?in?your?merge?dir.
    ????????
    -->

    ????
    </ class >

    </ hibernate-mapping >


    ?控制臺(tái)中部分信息如下:

    [schemaexport]?drop?table?syn_dept?cascade?constraints
    [schemaexport]?go
    [schemaexport]?drop?sequence?hibernate_sequence
    [schemaexport]?go
    [schemaexport]?create?table?syn_dept?(
    [schemaexport]?id?number(19,0)?not?null,
    [schemaexport]?code_name?varchar2(255),
    [schemaexport]?primary?key?(id)
    [schemaexport]?)

    DB中已經(jīng)生成syn_dept表了,快去看下吧!

    關(guān)于Xdoclet 中的hibernate標(biāo)簽更多信息可以參考:
    http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html#@hibernate_collection-key__0__1_
    我還在一個(gè)網(wǎng)友的博客上看到了他對(duì)此的漢化:
    http://blog.csdn.net/fasttalk/archive/2005/09/19/484615.aspx



    posted on 2006-06-09 09:24 nbt 閱讀(502) 評(píng)論(0)  編輯  收藏 所屬分類: ORMapping框架


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    <2006年6月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊(cè)

    收藏夾

    Java技術(shù)網(wǎng)站

    友情鏈接

    國(guó)內(nèi)一些開源網(wǎng)站

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 久久香蕉国产线看观看亚洲片| 亚洲精品国精品久久99热| 免费很黄很色裸乳在线观看| 午夜无码A级毛片免费视频| 久久国产成人精品国产成人亚洲| 黄色一级毛片免费| 鲁丝片一区二区三区免费| 亚洲精品无码久久久久| 美女被免费网站91色| 一色屋成人免费精品网站| 亚洲午夜在线一区| 精选影视免费在线 | 久久久久亚洲AV成人网| 国内精品免费在线观看| 久久综合图区亚洲综合图区| 久久久高清日本道免费观看| 久久精品国产亚洲av麻豆色欲| 在线看无码的免费网站| 中文字幕乱码亚洲精品一区 | 天堂亚洲国产中文在线| 免费又黄又爽又猛大片午夜 | 黄色短视频免费看| 亚洲成A人片在线观看无码不卡| 日本免费在线观看| 亚洲人成www在线播放| 国产亚洲精品免费| 国产在线观看免费av站| 亚洲福利视频一区二区三区| 手机在线免费视频| 国产va免费精品| 亚洲视频在线观看网址| 永久黄网站色视频免费观看| igao激情在线视频免费 | 亚洲一区二区三区在线观看蜜桃| 女人被免费视频网站| 国产精品免费在线播放| 亚洲国产精品日韩在线| 亚洲精品无码成人片在线观看| 男人的天堂网免费网站| 亚洲精品宾馆在线精品酒店| 在线观看午夜亚洲一区|