反射机制读取自定义注解
来源:互联网 发布:捷速pdf文字识别软件 编辑:程序博客网 时间:2024/06/03 12:40
自定义注解类的类
package com.dasenlin.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 自定义学生类的注解仅修饰属性注解类 * @author Administrator * */@Target(value={ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public @interface DslTable { String value();//修饰时需要用到的参数}
自定义注解类的属性的类
package com.dasenlin.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 自定注解属性 * @author Administrator * */@Target(value={ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)public @interface DslFiled { String columnName(); String type(); int length();}
注解的实体类
package com.dasenlin.annotation;@DslTable("tb_student")public class Student { @DslFiled(columnName="sid",type="int",length=10) private Integer sid; @DslFiled(columnName="sname",type="varchar2",length=10) private String sname; @DslFiled(columnName="sage",type="int",length=3) private Integer sage; public Student() { super(); } public Student(Integer sid, String sname, Integer sage) { super(); this.sid = sid; this.sname = sname; this.sage = sage; } public Integer getSid() { return sid; } public void setSid(Integer sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public Integer getSage() { return sage; } public void setSage(Integer sage) { this.sage = sage; }}
反射机制获取实体类中所有信息
package com.dasenlin.annotation;import java.lang.annotation.Annotation;import java.lang.reflect.Field;/** * 模拟注解读取流程, * @author Administrator * 通过反射机制 */public class LoadStudent { public static void main(String[] args) { try { Class clazz=Class.forName("com.dasenlin.annotation.Student");//反射机制获取类的所有私有非私有属性包括注解 //1.获取类所有的注解@com.dasenlin.annotation.DslTable(value=tb_student) Annotation [] annotations=clazz.getAnnotations(); for(Annotation annta:annotations){ System.out.println(annta);//这个类的注解 } //2.获得类的指定的注解tb_student DslTable dslt =(DslTable) clazz.getAnnotation(DslTable.class);//多个注解直接获取一个指定的注解类 System.out.println(dslt.value());//直接获取这个注解在该类中的值 //3.获取类的属性sname的注解sname:varchar2:10 Field f=clazz.getDeclaredField("sname");//获取注解的属性名 DslFiled dslf=f.getAnnotation(DslFiled.class); System.out.println(dslf.columnName()+":"+dslf.type()+":"+dslf.length()); //4.根据获得的表的名称,字段的信息。拼出DDl语句,然后只用jdbc执行sql语句,在数据库中生成表,hibernate和spring后台部分的基本思路 } catch (ClassNotFoundException | NoSuchFieldException | SecurityException e) { e.printStackTrace(); } }}
0 0
- 反射机制读取自定义注解
- 注解_Annotation_内置注解_自定义注解_反射机制读取注解JAVA208-210
- 初步认识注解,用反射来读取自定义注解
- 自定义注解(反射机制)查找实体间的不同
- java反射机制和自定义注解原理分析和实例
- Java反射机制,Java注解,利用Java反射调用类方法,自定义Java注解
- 使用反射读取注解
- java自定义注解和运行时靠反射机制获取注解
- 注解+反射+PropertiesProxy 读取配置文件
- Java--注解及反射读取注解
- Android注解与反射机制
- 反射机制解决某些注解
- java 反射之自定义注解
- 自定义注解和反射注释
- 自定义注解和反射实例
- 类加载、反射、自定义注解
- Annotation(自定义注解)反射获取注解
- Java自定义注解和反射获取注解
- 公司用到的一些 iOS 开源库和第三方组件
- Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传
- make
- angularjs学习笔记 ng-class
- ssi服务器端指令详解(shtml)
- 反射机制读取自定义注解
- 阅读郭林《第一行代码》的笔记——第13章 继续进阶,你还应该掌握的高级技巧
- iOS 简单封装的一个夜间模式
- 程映虹:美国高中生如何识别媒体的政治偏见
- 程序集(CLR)调用web service出现"在执行用户定义历城或聚合期间出现.net framework错误,索引(从零开始必须大于或等于零,且小于参数列表的大小)"
- mysql查看所有存储过程,函数,视图,触发器,表
- 修改linux主机名称
- poj2676 sudoku dfs
- Android Transition 学习笔记