java注解使用
来源:互联网 发布:最新拍摄软件 编辑:程序博客网 时间:2024/06/14 02:24
语法
- 声明public @interface
- 成员以无参无异常方式声明
- 可以用default为成员指定一个默认值
- 如果注解只有一个成员,则成员名必须为value(),在使用时可以忽略成员名和赋值号(=)
- 注解类可以没有成员,没有成员的注解为标识注解
元注解
+ @Target- Annotation所修饰的对象范围(Type,Field,Method)+ @Retention- Annotation被保留的时间长短+ @Inherited- 某个被标注的类型是被继承的,实用类的子类继承+ @Documented- javadoc此类的工具文档化
使用
本例使用注解的方式生成SQL。
@Target(TYPE)@Retention(RUNTIME)public @interface TableEntity { /** * The name of the table. * <p> Defaults to the entity name. */ String value() default "";}
/** * Title:Column.java * Description: 表字段映射 * * @author zhuyang * @version 1.0 2017/7/20 */@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface Column { String value() default "";}
package com.annotation;/** * Title:Student.java * Description:实体类 * * @author zhuyang * @version 1.0 2017/7/20 */@TableEntity("stu")public class Student { @Column("name") private String name; @Column(value = "password") private String password; @Column(value = "age") private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; }}
package com.annotation;import java.lang.reflect.Field;/** * Title:QueryGenerator.java * Description:SQL生成器 * * @author zhuyang * @version 1.0 2017/7/20 */public class QueryGenerator { public String generatQuery(Class<?> entityClass){ StringBuffer sql = new StringBuffer("Select "); //get type annotation(table) TableEntity tableEntity = entityClass.getAnnotation(TableEntity.class); //table name String tableName = tableEntity.value(); Field[] fields = entityClass.getDeclaredFields(); for(Field f : fields){//iterate field and construct sql Column column= f.getAnnotation(Column.class); String columnName = column.value(); sql.append(columnName).append(","); } sql.append(" FROM "+tableName); return sql.toString(); }}
public class Main { public static void main(String []s){ QueryGenerator queryGenerator = new QueryGenerator(); String sql = queryGenerator.generatQuery(Student.class); System.out.println(sql); }}
阅读全文
0 0
- java注解的使用
- Java 注解的使用
- java 自定义注解使用
- 使用Java 注解
- java Annotation(注解)使用
- java使用自定义注解
- java 注解的使用
- Java注解的使用
- java 自定义注解使用
- java注解的使用
- Java注解的使用
- JAVA自定义注解使用
- java 注解使用
- java注解的使用
- java注解的使用
- java 注解的使用
- Java注解的使用
- Java注解的使用
- svn出现 “previous operattion has not finished,run clean up if it is was interrupted”解决方法
- 字符串逆序
- 【HDU 1257 最少拦截系统】+ dp
- linux运维第一天: 计算机基础
- 轻量级java调用流程追踪日志框架-trace4j
- java注解使用
- 5.JVM的七个收集器
- ResultSetMetaData获取数据库表字段
- 第一次用博客。
- 在页面显示监控视频
- ModelMap和ModelAndView的作用
- ojdbc操作oracle时间类型字段的处理
- JS获取某月首尾日,获取某天某周的首位日
- 替换字符串中的空格