定义(百度词条)
注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
比如我们最常见的 @ Override 就是注解,除了JDK以及第三方注解,可以通过自定义注解来实现一些意想不到的效果。在这里我们使用自定义注解来实现JDBC中的Dao层,通过例子可以体会自定义注解的妙用。
首先先看自定义注解的语法要求
@Target({Element.METHOD,Element.TYPE}) //注解作用的位置
@Retention(RUNTIME)//注解作用的时间
//使用@interface键字定义注解
Public @interface Description{
//成员以无参无异常方式声明
String desc();
String author();
//可以用default为成员制定一个默认值
Int age() default 18;
}
关于自定义注解还有以下注意:
1、成员类型是受限的,合法的类型包括原始类型及String Class Annotation Enumeration
2、如果注解只有一个成员,则成员必须取名为value()在使用时可以忽略成员名和赋值号(=)
3、注解类可以没有成员 没有成员的注解成为标识注解
下面通过查询学生信息的例子,来展示自定义注解的妙用。
//关于表名的注解
package test;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@Retention(RUNTIME)
@Target(TYPE)
/**
*@author Nut
*@version 2018年3月26日 下午10:48:49
*自定义注解:
*通过获取value的值,可以得到要使用的数据库中的表名
*描述用户表的注解
*/
public @interface TableName {
String value();
}
关于表中列名的注解
package test;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@Retention(RUNTIME)
@Target(FIELD)
/**
*@author Nut
*@version 2018年3月26日 下午10:51:47
*自定义注解:
*通过获取value的值,可以获取数据库的表的列名
*描述用户表属性字段的注解
*/
public @interface ColumnName {
String value();
}
//一个Student学生类
package test;
/**
* @