62,620
社区成员
发帖
与我相关
我的任务
分享
public abstract class BaseDaoImpl<T> implements BaseDao<T> {
/** 当前操作的实体的类型信息 */
protected Class clazz;
/** 实体对应的表名 */
protected String tableName;
protected QueryRunner qr = new QueryRunner();
protected BeanHandler<T> beanHandler;
protected BeanListHandler<T> beanListHandler;
protected ScalarHandler<Long> scalarHandler;
public BaseDaoImpl() {
/**
* 反射的本质是得到class对象后,反向获取类对象的各种信息
*/
// 通过反射机制获取子类传递过来的实体类的类型信息
ParameterizedType type = (ParameterizedType) this.getClass()
.getGenericSuperclass();
System.out.println(type);
clazz = (Class) type.getActualTypeArguments()[0];
beanHandler = new BeanHandler<T>(clazz);
beanListHandler = new BeanListHandler<T>(clazz);
scalarHandler = new ScalarHandler<Long>();
this.tableName = clazz.getSimpleName().toLowerCase();
}
ParameterizedType type = (ParameterizedType) this.getClass()
.getGenericSuperclass();