网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Path 属性.
.在JSE环境使用HibernateEntityMa.
.微软.Net VS Java两军对垒 Web服.
.修正Java中wait方法超时语意模糊.
.使用SMTP协议发送邮件.
.关于finalize()方法的解释.
.java设计模式之Bridge(抽象和行为.
.开源Erlang真的能成为下一代Java.
.现代Java Web开发架构分析.
.JFCUnit测试GUI的一个实例(代码.
.Java十大经典中文图书.
.String类使用的例子(3).
.消除对过期对象的引用.
.Windows2003上整合IIS6和Tomcat5.
.基于CORBA/WEB技术构建三层体系结.
.JBuilder 2005开发Applet游戏全接.
.JBuilder 6 :Borland方式的Java.
.使用DB4O对象数据库进行简单持久.
.敏捷开发的必要技巧:将注释转为.
.Eclipse下实现软件项目的源码管理.

EasyDBO中Java注解配置映射的原理及使用

发表日期:2008-1-5



  我们知道,在EasyDBO最后一个测试版本中,增加了使用注解来配置对象及关系表映射的功能。前段时间看到有人在问注解中怎么配置主键属性及主键生成器,由于在开发文档中使用的是默认配置,所以文档中使用了下面的例子:
import Java.io.Serializable; 
import java.util.Date;import com.easyjf.dbo.annotation.*;
@Table(tableName="message")
public class Message implements Serializable{ 
  @TableField(name="cid")
  private String 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;
  }
  public void 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")
public class 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也还会作一些调整,请关注!
上一篇:基于MVC设计模式的WEB应用框架研究 人气:1143
下一篇:Java入门之:HelloWorld.java 人气:1277
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐