public abstract class BaseDao2<T> {
private Class<T> clazz;//表示实现该抽象类所调用的类型
private QueryRunner runner=new QueryRunner();
{
Type type=this.getClass().getGenericSuperclass();//获取子类的类型//获取带泛型父类型
ParameterizedType pType=(ParameterizedType)type;
Type[] types=pType.getActualTypeArguments();//获取具体的泛型类型
clazz=(Class<T>)types[0];
}
// 增删改
public int update(Connection conn,String sql,Object...vals){
int cnt=0;
try {
cnt=runner.update(conn,sql,vals);
return cnt;
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return cnt;
}
// 查询一个对象
public T getBean(Connection conn,String sql,Object...vals){
T t=null;
try {
BeanHandler<T> handler=new BeanHandler<>(clazz);
t=runner.query(conn,sql,handler,vals);
return t;
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return t;
}
// 查询多个对象
public List<T> getBeanList(Connection conn,String sql,Object...vals){
List<T> list=null;
try {
BeanListHandler<T> handler=new BeanListHandler<>(clazz);
list=runner.query(conn,sql,handler,vals);
return list;
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return list;
}
// 查询特殊的数值
public Object getValues(Connection conn,String sql,Object...vals){
Object cnt=null;
try {
ScalarHandler handler=new ScalarHandler();
cnt=runner.query(conn,sql,handler);
return cnt;
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return cnt;
}
}
8. 使用开源库之后的BaseDao类
最新推荐文章于 2023-09-09 16:39:24 发布