8. 使用开源库之后的BaseDao类

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;
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值