接口:
public interface DAO<T>{
void update(Connection connection,String sql,Object ... arges); //更新的方法
T get(Connection connection,String sql,Object ... arges);//返回一个T对象的一条信息
List<T> getforlist(Connection connection,String sql,Object ... arges);//返回T的一个集合
<E> E getforvalue(Connection connection,String sql,Object ... arges);//获取某一个值
void batch(Connection connection,String sql,Object []... arges)// 批量处理方法
}
接口实现类:继承DAO
publicclass JDBCDAOImp<T> implements DAO<T> {
//使用QueryRunner来实现
private QueryRunner queryrunner =null;
//实体类
private Class<T> type;
publci JDBCDAOImp(){
queryrunner =new QueryRunner();
//实体类是用反射来获取
type =RefletionUtils.getSuperGenericType(getClass()); //传入的实体类能反射创建
}
public void update(Connection connection,String sql,Object ... arges); //更新的方法
{
}
public T get(Connection connection,String sql,Object ... arges);//返回一个T对象的一条信息
{
return queryRunner.query(connection,sql,new beanHandler<>(type) ,args);
}
public List<T> getforlist(Connection connection,String sql,Object ... arges); //返回T的一个集合
{
}
public <E> E getforvalue(Connection connection,String sql,Object ... arges); //获取某一个值
{
}
public void batch(Connection connection,String sql,Object []... arges)// 批量处理方法
{
}
}
编写一个Customer 的实体类 , 里面是属性
编写一个CustomerDAO 用来实现功能
Public class CustomerDAO extends JDBCDAOImp<Customer >{ //对Customer 进行具体的数据库操作
//获取单数据
进行测试:
public void testget(){
Connection connection =null;
try{
connection =JDBC.getconnection();
//编写语句
String sql="';
Customer customer =CustomerDAO.get(connection,sql,查询的ID); //继承JDBCDAOImp<Customer >
}catch(xxxx e){
e.xxxx;
}finally{
关闭数据库连接
}
}
}