利用反射搭建orm框架

1思路 根据java反射获取属性上的 注解的value的值 然后拼接成sql去执行 这就是完成了一个orm实体关系映射

package src.Test.Reflect;
import java.lang.reflect.Field;

@Table("table_teacher")
class teacher{
@Propety(name = "student_id")//必须和数据库里的列表对应一样
private String studentId;
@Propety(name = "student_name")
private String studentName;
@Propety(name = "student_age")
private String studentAge;
}

public class ORM_Demo {
//思路 根据java反射获取属性上的 注解的value的值 然后拼接成sql去执行 这就是完成了一个orm实体关系映射
public static void main(String[] args) throws ClassNotFoundException {
Class<?> want= Class.forName("src.Test.Reflect.teacher");
Field[] field=want.getDeclaredFields();//获得所有的属性以及其修饰符 eg: private java.lang.String com.itmayiedu.Student.studentId
//根据注解获得其属性字段的name 这个必须和数据库的列保持一致
StringBuffer sf = new StringBuffer();
sf.append(" select ");
for(int i=0;i<field.length;i++){
Field foo=field[i];//获得单个属性
Propety p = foo.getDeclaredAnnotation(Propety.class);
sf.append(p.name());
//sf.append(field);
if (i < field.length - 1) {
sf.append(" , ");
}
}
Table declaredAnnotation = want.getDeclaredAnnotation(Table.class);
sf.append(" from " + declaredAnnotation.value());
System.out.println("生成的sql语句是"+sf.toString());
}
}
2这上面有我自定义的注解Table和Propety.这部分代码我就不贴出来了 嘿嘿 可以私聊我 qq邮箱在下
posted @ 2018-12-18 15:50  向上生长6688  阅读(285)  评论(0编辑  收藏  举报