隨筆 - 115  文章 - 481  trackbacks - 0
          <2006年10月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(19)

          隨筆檔案(115)

          文章檔案(4)

          新聞檔案(1)

          成員連接

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

            我們知道,在EasyDBO最后一個測試版本中,增加了使用注解來配置對象及關(guān)系表映射的功能。前段時間看到有人在問注解中怎么配置主鍵屬性及主鍵生成器,由于在開發(fā)文檔中使用的是默認(rèn)配置,所以文檔中使用了下面的例子:
          import java.io.Serializable;
          import java.util.Date;import com.easyjf.dbo.annotation.*;
          @Table(tableName="message")
          publicclass Message implements Serializable{
            @TableField(name="cid")
            privateString cid;
            @TableField(name="title")
            private String title1;
            @TableField(name="content")
            private String content1;
            @TableField(name="inputUser")
            private String inputUser;
            @TableField(name="inputTime")
            private Date inputTime;
            @TableField(name="publish")
            private Boolean publish1;
            @TableField(name="status")
            private Integer status1;
            public String getCid() {
              return cid;
            }
            publicvoid setCid(String cid) {
              this.cid = cid;
            }
            //...
            //其它的getter及setter方法
          }
           
           這里面沒有演示怎么配置主鍵屬性及生成器,我們分別來看看@Table及@TabelField兩個標(biāo)簽的源代碼:
          ?
          package com.easyjf.dbo.annotation;
          import java.lang.annotation.Retention;
          import java.lang.annotation.RetentionPolicy;
          /**
          ?* 用于定義表結(jié)構(gòu)的標(biāo)簽
          ?* @author 大峽
          ?*
          ?*/
          @Retention(RetentionPolicy.RUNTIME)
          public @interface Table {
          ?/**
          ? * 表名
          ? * @return
          ? */
          ?String tableName();
          ?/**
          ? * 表主鍵
          ? * @return
          ? */
          ?String keyField() default "cid";
          ?/**
          ? * 主鍵值生成器
          ? * @return
          ? */
          ?String keyGenerator() default "com.easyjf.dbo.RandomIdGenerator";?
          ?
          }
          ?
            由源碼可以看到,@Table有三個屬性,tableName用來定義表名,keyField用來定義主鍵屬性,keyGenerator用來定義主鍵生成器。而keyField與keyGenerator有一個默認(rèn)值,前面的Message類定義由于使用了默認(rèn)值,因此沒有使用keyField及keyGenerator。若要自定義自己的默認(rèn)值,可以寫成如下形勢:
          @Table(tableName="message",keyField="id",keyGenerator="com.easyjf.dbo.NullIdGenerator")
          publicclass Message implements Serializable{
            ...
          }
          ?
          ?
            再來看看@TableField的源文件:
          package com.easyjf.dbo.annotation;
          import java.lang.annotation.Retention;
          import java.lang.annotation.RetentionPolicy;
          /**
          ?* 用于定義表字段的標(biāo)簽
          ?* @author 大峽
          ?*
          ?*/
          @Retention(RetentionPolicy.RUNTIME)
          public @interface TableField
          {
          ?public String name() ;??
          ?boolean lazy() default false;
          ?boolean unique() default false;
          }
          ?
            由于已經(jīng)把lazy及unique給了默認(rèn)值,所以我們看到示例中只定義了屬性對應(yīng)的例即可。
          ?
            @TableField只定義了普通的屬性,另外還有OneToOne、ManyToOne、ManyToMany等屬性,詳細(xì)請參考EasyDBO開發(fā)文檔
          ????? http://www.easyjf.com/easydbo/devguide.htm
          ?
            另外,關(guān)于注解配置應(yīng)該還會在正式版本中加入一些比較適用的內(nèi)容,EasyDBO也還會作一些調(diào)整,請關(guān)注!

          (本文作者 EasyJF開源 大峽)
          posted on 2006-10-26 10:08 簡易java框架 閱讀(1056) 評論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 承德市| 长丰县| 绥阳县| SHOW| 南充市| 齐齐哈尔市| 阜城县| 射阳县| 上思县| 库车县| 邢台市| 桑植县| 昌乐县| 清镇市| 揭东县| 弥渡县| 望城县| 田林县| 高青县| 阿瓦提县| 秦皇岛市| 福泉市| 信丰县| 青龙| 梁山县| 凤阳县| 双流县| 澳门| 伊宁县| 奎屯市| 泌阳县| 宜兰县| 阳西县| 马边| 闻喜县| 鄂托克前旗| 玉田县| 罗源县| 浮梁县| 垦利县| 明溪县|