通过类反射获取表名,通过逐个反射每个属性的getter方法,获取注解在属性上的字段名,以及属性值。
拿到表名、字段名、值,就可以拼接插入语句了。
@Table(name = "STUDENT")
public class Student {
@Column(name = "ROW_ID")
private String id;
@Column(name = "NAME")
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
导入jar包
import javax.persistence.Table;
public void getTable(){
反射获取Class与Method :
想要通过反射获取表名、字段名等,需要先获取类对象和方法对象(反射的惯用套路):
Class<?> clz = obj.getClass(); //obj就是bean对象的名称
Method[] methods = clz.getMethods();
获取表名:
Table table = clz .getAnnotation( Table.class );//获取注解类
String table_name = table.name();//获取注解类的属性
获取每一个字段名:
Field[] f = obj.getClass().getDeclaredFields();
for (int i = 0; i < fLeng; i++) {
propertyName = f[i].getName();
f1= obj.getClass().getDeclaredField(propertyName );
Column col = f1.getAnnotation(Column.class);
String col_name = col.name();
}
}
这样可以获取到所有字段名 和表名