本文整理自网络,侵删。
今晚读了think in java 的章节,感觉很不错,我就敲了下来,贴上代码给以后一个回顾:
建议提前读一下think in java 注解 。
说明创建注解我在第一个注解说明下,以后的注解不在说明。‘
DBTable 注解:
/** * Project Name:myannotation * File Name:DBTable.java * Package Name:com.iflytek.db * Date:2016-8-28下午08:20:54 * Copyright (c) 2016, syzhao@iflytek.com All Rights Reserved. * */ package com.iflytek.db; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** @Target: @Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。 作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方) 取值(ElementType)有: 1.CONSTRUCTOR:用于描述构造器 2.FIELD:用于描述域 3.LOCAL_VARIABLE:用于描述局部变量 4.METHOD:用于描述方法 5.PACKAGE:用于描述包 6.PARAMETER:用于描述参数 7.TYPE:用于描述类、接口(包括注解类型) 或enum声明 @Retention: @Retention定义了该Annotation被保留的时间长短:某些Annotation仅出现在源代码中,而被编译器丢弃;而另一些却被编译在class文件中;编译在class文件中的Annotation可能会被虚拟机忽略,而另一些在class被装载时将被读取(请注意并不影响class的执行,因为Annotation与class在使用上是被分离的)。使用这个meta-Annotation可以对 Annotation的“生命周期”限制。 作用:表示需要在什么级别保存该注释信息,用于描述注解的生命周期(即:被描述的注解在什么范围内有效) 取值(RetentionPoicy)有: 1.SOURCE:在源文件中有效(即源文件保留) 2.CLASS:在class文件中有效(即class保留) 3.RUNTIME:在运行时有效(即运行时保留) Retention meta-annotation类型有唯一的value作为成员,它的取值来自java.lang.annotation.RetentionPolicy的枚举类型值 */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface DBTable { public String name() default ""; }
Constraints 约束注解:
/** * Project Name:myannotation * File Name:Constraints.java * Package Name:com.iflytek.db * Date:2016-8-28下午08:27:08 * Copyright (c) 2016, syzhao@iflytek.com All Rights Reserved. * */ package com.iflytek.db; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface Constraints { boolean primaryKey() default false; boolean allowNull() default true; boolean unique() default false; }
SQLInteger int注解:
/** * Project Name:myannotation * File Name:SQLInteger.java * Package Name:com.iflytek.db * Date:2016-8-29下午10:24:11 * Copyright (c) 2016, syzhao@iflytek.com All Rights Reserved. * */ package com.iflytek.db; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface SQLInteger { String name() default ""; Constraints constraints() default @Constraints; }
SQLString 字符注解:
/** * Project Name:myannotation * File Name:SQLString.java * Package Name:com.iflytek.db * Date:2016-8-29下午10:28:04 * Copyright (c) 2016, syzhao@iflytek.com All Rights Reserved. * */ package com.iflytek.db; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface SQLString { int value() default 0; String name() default ""; Constraints constraints() default @Constraints; }
创建表的处理器:
相关阅读 >>
mssql2005 insert,update,delete 之output子句使用实例
更多相关阅读请进入《sql》频道 >>
数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。