有了一个框架,只需要配置好数据库连接,就可以在java代码层操控database,对于写个model便在数据库中创建了一张表而感到十分神奇,隐约想起以前看《Thinking in Java》中关于注解(Annotation)一张中对于自动生成SQL语句的操作。
首先略微介绍下注解(亦称为与数据metadata(ORM-对象/关系映射中的核心))。
Annotation源自JavaSE1.5,内置3个标准注解,4个元注解:
(1)java.lang.*中的@Override,@Deprecated, @SuppressWarnings
(2)java.lang.annotations.*中的@Target, @Inherited, @Retention, @Documented
对于后4个元注解,稍后再在代码中解释。
对于一个创建表的SQL Create语句,我们要确定几个元素:表名,列名,列名类型,类型长度,约束等,这些都可以在实体类的属性加以注解说明来实现。
对于表名注解:
1 1 package annotiation; 2 2 import java.lang.annotation.*; 3 3 4 4 @Inherited // 允许子类继承父类中的注解 5 5 @Documented // 将此注解包含在Javadoc中 6 6 @Target(ElementType.TYPE) // 类、接口(包括注解类型)或枚举类型声明 7 7 @Retention(RetentionPolicy.RUNTIME) // VM在运行时保留注解,从而通过反射获取信息 8 8 9 9 public @interface DBTable { 10 10 public String name() default ""; // 注解未赋值是,默认为空 11 11 }