<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伊人| 国产亚洲精品xxx| 亚洲精品美女网站| 成人浮力影院免费看| 久久精品国产亚洲AV无码娇色| 一个人看的www免费视频在线观看 一个人免费视频观看在线www | 亚洲男同gay片| 午夜毛片不卡高清免费| 亚洲av午夜国产精品无码中文字| 最新猫咪www免费人成| 色天使亚洲综合一区二区| 亚洲AV无码乱码在线观看牲色| 一级毛片正片免费视频手机看| 黑人大战亚洲人精品一区| 久99久精品免费视频热77| 亚洲中文无码av永久| 永久免费看mv网站入口| 无码毛片一区二区三区视频免费播放| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 亚洲精品A在线观看| 精品多毛少妇人妻AV免费久久| 亚洲国产精品va在线播放| 亚洲人成小说网站色| 好男人看视频免费2019中文| 日韩色日韩视频亚洲网站 | 免费无码又爽又刺激聊天APP| 亚洲人成未满十八禁网站| 久久综合亚洲色HEZYO国产| 无码AV片在线观看免费| 亚洲另类无码专区丝袜| 精品国产人成亚洲区| 亚洲人成免费网站| 亚洲av无码一区二区三区四区| 国产亚洲自拍一区| 999久久久免费精品国产 | 一级特黄a大片免费| 亚洲精品日韩专区silk| 国产亚洲精品免费| 亚洲精品成a人在线观看夫| 亚洲人成影院在线无码按摩店| 美女视频黄a视频全免费|