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

          常用鏈接

          留言簿(19)

          隨筆檔案(115)

          文章檔案(4)

          新聞檔案(1)

          成員連接

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

            我們知道,在EasyDBO最后一個測試版本中,增加了使用注解來配置對象及關系表映射的功能。前段時間看到有人在問注解中怎么配置主鍵屬性及主鍵生成器,由于在開發文檔中使用的是默認配置,所以文檔中使用了下面的例子:
          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兩個標簽的源代碼:
          ?
          package com.easyjf.dbo.annotation;
          import java.lang.annotation.Retention;
          import java.lang.annotation.RetentionPolicy;
          /**
          ?* 用于定義表結構的標簽
          ?* @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有一個默認值,前面的Message類定義由于使用了默認值,因此沒有使用keyField及keyGenerator。若要自定義自己的默認值,可以寫成如下形勢:
          @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;
          /**
          ?* 用于定義表字段的標簽
          ?* @author 大峽
          ?*
          ?*/
          @Retention(RetentionPolicy.RUNTIME)
          public @interface TableField
          {
          ?public String name() ;??
          ?boolean lazy() default false;
          ?boolean unique() default false;
          }
          ?
            由于已經把lazy及unique給了默認值,所以我們看到示例中只定義了屬性對應的例即可。
          ?
            @TableField只定義了普通的屬性,另外還有OneToOne、ManyToOne、ManyToMany等屬性,詳細請參考EasyDBO開發文檔
          ????? http://www.easyjf.com/easydbo/devguide.htm
          ?
            另外,關于注解配置應該還會在正式版本中加入一些比較適用的內容,EasyDBO也還會作一些調整,請關注!

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

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


          網站導航:
           
          主站蜘蛛池模板: 交城县| 文安县| 简阳市| 汨罗市| 新平| 枞阳县| 南康市| 田阳县| 泰安市| 饶河县| 凌云县| 那坡县| 大同县| 白城市| 宁明县| 东乌珠穆沁旗| 嘉兴市| 镇康县| 葫芦岛市| 甘德县| 科技| 汝南县| 咸阳市| 建宁县| 邛崃市| 武邑县| 侯马市| 樟树市| 革吉县| 通渭县| 石家庄市| 本溪市| 湘乡市| 江安县| 黑水县| 松阳县| 呼玛县| 安图县| 富蕴县| 松潘县| 西乌珠穆沁旗|