Apache:dbutils 开源JDBC工具类库
2024-09-04 07:50:04
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);
}
}
最新文章
- 【DWR系列03】- DWR主要类详解
- windows 开机启动 CassiniDev(IIS替代软件)
- kettle etl
- 重新想象 Windows 8 Store Apps (44) - 多线程之异步编程: 经典和最新的异步编程模型, IAsyncInfo 与 Task 相互转换
- exit(-1)或者return(-1)为什么shell得到的退出码是255?
- 基于UltraVNC实现客户端远程控制
- laravel学习:修改时区
- (摘)oracle dataguard切换
- github免密登陆
- Ubuntu安装Hadoop
- 洛谷P2470 [SCOI2007]压缩(区间dp)
- 【tmos】使用joda-time来个格式化时间
- How not to alienate your reviewers, aka writing a decent rebuttal?
- <;亲测>;CentOS中yum安装ffmpeg
- 使用深度学习检测TOR流量——本质上是在利用报文的时序信息、传输速率建模
- Ubuntu IntelliJ IDEA 注冊碼與Gradle相關
- asp.net 浏览器下载文件的四种方式
- IDEA安全编码组件
- 9.26 开课第二十三天 (JS表单验证)
- spring注解配置quartz
热门文章
- Apache Doris ODBC外表之Postgresql使用指南
- 【MQ】java 从零开始实现消息队列 mq-02-如何实现生产者调用消费者?
- 新华三Gen10服务器ilo5中刷新bios固件
- XCTF练习题---WEB---view_source
- 手把手教你在Linux中快速检测端口的 3 个小技巧
- learnByWork
- ansible的介绍与安装
- [保姆级教程] 如何在 Linux Kernel (V5.17.7) 中添加一个系统调用(System call)
- 小米 pro 笔记本双硬盘设置引导盘
- 811.&#160;Subdomain Visit Count - LeetCode