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

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

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

    ☆藍色夢想☆

    世界總是反反覆覆錯錯落落地飄去 來不及嘆息 生活不是平平淡淡從從容容的東西 不能放棄
    posts - 57, comments - 5, trackbacks - 0, articles - 0

    XDoclet(ant)生成Hibernate映射文件

    Posted on 2006-08-18 16:36 ☆藍色夢想☆ 閱讀(437) 評論(0)  編輯  收藏 所屬分類: Hibernate
    java--->XDoclet(hibernatedoclet)--->Hbm---->SchemaExport(schemaexport,hbm2ddl)---->數據表

    ?1/**/?/*?
    ?2?*?Created?on?2006-4-7
    ?3??*/
    ?
    ?4?
    ?5?package??com.entity;
    ?6
    ?7?/**?*/?/**?
    ?8?*??@author??jkallen
    ?9?*?@hibernate.class?lazy="true"?table="syn_dept"
    10?*?@hibernate.cache?usage="read-write"
    11??*/
    ?
    12??public???class??SynDepartment???{
    13?
    14??/**?*/?/**??主鍵?id?*/?
    15??private??Long?id;
    16??/**?*/?/**??部門名稱?*/?
    17??private??String?code_name;
    18?
    19??/**?*/?/**?
    20??*??@return??Returns?the?id.
    21??*?@hibernate.id?generator-class="native"?column="id"
    22???*/
    ?
    23??????public??Long?getId()???{
    24???return??id;
    25?}
    ?
    26???public???void??setId(Long?id)???{
    27???this?.id??=??id;
    28?}
    ?
    29???/**?*/?/**?
    30????*??@return??Returns?the?code_name.
    31????*?@hibernate.property?column?=?"code_name"
    32?????*/
    ?
    33???public??String?getCode_name()???{
    34???return??code_name;
    35?}
    ?
    36???public???void??setCode_name(String?code_name)???{
    37???this?.code_name??=??code_name;
    38?}
    ?
    39}
    ?
    40
    這里用到了幾種@hibernate標記的用法
    @hibernate.class標記指定類的映射代碼,lazy="true" table="syn_dept"則如
    hibernate的映射文件class元素的屬性值具有相同的意義
    @hibernate.id標記指定類的OID映射代碼
    @hibernate.property標記指定類的屬性映射代碼
    另外還可能用到@hibernate.set(如一對多的情況下)

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

    <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---->數據表

    <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腳本輸出到控制臺
    ?drop:如果為yes,只執行刪除數據庫中的操作,但不創建新的表
    ?text:如果為yes,只會生成DDL腳本文件,但不會在數據庫中執行DDL腳本
    ?output:指定存放DDL腳本文件的目錄
    ?config:設定基于XML格式的配置文件, hbm2ddl(schemaexport)工具從這個文件中讀取數據庫的配置信息
    ?properties:設定基于java屬性文件格式的配置文件,hbm2ddl(schemaexport)工具從這個文件中讀取DB的配置信息
    ?format:設定DDL腳本中SQL語句的格式
    ?delimiter:為DDL腳本設置行結束符
    ?
    ?在ANT中執行:
    ?<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>


    ?控制臺中部分信息如下:

    [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中已經生成syn_dept表了,快去看下吧!

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


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产精品久久久久婷婷软件| 亚洲av无码专区在线观看亚| 国产激情久久久久影院老熟女免费| 24小时免费直播在线观看| 在线aⅴ亚洲中文字幕| 好大好硬好爽免费视频| 亚洲熟妇无码av另类vr影视| 成年在线观看免费人视频草莓| 亚洲一区二区三区亚瑟| a级毛片无码免费真人| 亚洲AV无码成人精品区狼人影院| 在线观看亚洲免费| 色吊丝性永久免费看码| 亚洲熟妇av一区二区三区| 国产一级一毛免费黄片| 亚洲a一级免费视频| 久草视频免费在线| 亚洲精品乱码久久久久蜜桃 | 视频一区在线免费观看| 亚洲人成网站在线观看青青| 亚洲Av高清一区二区三区| 台湾一级毛片永久免费| 国产精品国产亚洲区艳妇糸列短篇 | 一个人看www在线高清免费看| 中文字幕无码亚洲欧洲日韩| 国产美女无遮挡免费视频| 中文日本免费高清| 亚洲欧洲精品一区二区三区| 在线观看国产情趣免费视频| 有色视频在线观看免费高清在线直播 | 国产一级高青免费| 亚洲一卡二卡三卡| 亚洲国产精品碰碰| 亚洲视频免费在线看| 亚洲熟妇无码一区二区三区 | 最近2019中文字幕mv免费看| 国产成人亚洲综合在线| 亚洲bt加勒比一区二区| 国产在线19禁免费观看| 嫩草在线视频www免费观看| 一本色道久久综合亚洲精品蜜桃冫|