commons-dbutils jar下载

package com.jdbc.tools;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler; import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.sql.SQLException;
import java.util.List; public abstract class BasicDAOImpl2 <T> {
//type代表T的实际类型
private Class<T> type;
private QueryRunner qr=new QueryRunner(); //在创建子类对象时,一定会调用父类构造器,默认调用父类无参构造
public BasicDAOImpl2(){
//this是正在new的对象
//clazz就是正在new对象的那个子类的类型的Class对象
Class<? extends BasicDAOImpl2> clazz = this.getClass();
Type t=clazz.getGenericSuperclass();
ParameterizedType pt=(ParameterizedType) t;
Type[] types=pt.getActualTypeArguments();
type= (Class) types[0];
} public int update(String sql, Object...args) throws SQLException {
return qr.update(JDBCToolsV3.getConnection(),sql,args);
}
public T getBean(String sql, Object...args) throws SQLException {
return qr.query(JDBCToolsV3.getConnection(),sql,new BeanHandler<>(type),args);
}
public List<T> getBeanList(String sql, Object... args) throws SQLException {
return qr.query(JDBCToolsV3.getConnection(),sql,new BeanListHandler<>(type),args);
}
}

最新文章

  1. 【DWR系列03】- DWR主要类详解
  2. windows 开机启动 CassiniDev(IIS替代软件)
  3. kettle etl
  4. 重新想象 Windows 8 Store Apps (44) - 多线程之异步编程: 经典和最新的异步编程模型, IAsyncInfo 与 Task 相互转换
  5. exit(-1)或者return(-1)为什么shell得到的退出码是255?
  6. 基于UltraVNC实现客户端远程控制
  7. laravel学习:修改时区
  8. (摘)oracle dataguard切换
  9. github免密登陆
  10. Ubuntu安装Hadoop
  11. 洛谷P2470 [SCOI2007]压缩(区间dp)
  12. 【tmos】使用joda-time来个格式化时间
  13. How not to alienate your reviewers, aka writing a decent rebuttal?
  14. &lt;亲测&gt;CentOS中yum安装ffmpeg
  15. 使用深度学习检测TOR流量——本质上是在利用报文的时序信息、传输速率建模
  16. Ubuntu IntelliJ IDEA 注冊碼與Gradle相關
  17. asp.net 浏览器下载文件的四种方式
  18. IDEA安全编码组件
  19. 9.26 开课第二十三天 (JS表单验证)
  20. spring注解配置quartz

热门文章

  1. Apache Doris ODBC外表之Postgresql使用指南
  2. 【MQ】java 从零开始实现消息队列 mq-02-如何实现生产者调用消费者?
  3. 新华三Gen10服务器ilo5中刷新bios固件
  4. XCTF练习题---WEB---view_source
  5. 手把手教你在Linux中快速检测端口的 3 个小技巧
  6. learnByWork
  7. ansible的介绍与安装
  8. [保姆级教程] 如何在 Linux Kernel (V5.17.7) 中添加一个系统调用(System call)
  9. 小米 pro 笔记本双硬盘设置引导盘
  10. 811.&#160;Subdomain Visit Count - LeetCode