使用DBUtils编写通用的DAO

使用DBUtils编写通用的DAO_第1张图片使用DBUtils编写通用的DAO_第2张图片

public class JdbcDaoImpl implements DAO

public class CustomerDao extends JdbcDaoImpl


第一步:interface DAO:

package com.atguigu.getconntection;


import java.sql.Connection;
import java.util.List;


/*
 * 访问数据的DAO接口
 * 里面定义好访问数据表的各种方法
 * @param T:DAO处理的实体类的类型
 */
public interface DAO {
/**
* 批量处理的方法
* @param connection
* @param sql
* @param args
*/
void batch(Connection connection,String sql,Object ... args);
/**

/**
* 返回一个具体的值,例如总人数,平均工资,某一个人的eamil
* @param connection
* @param sql
* @param args
* @return
*/
E getForValue(Connection connection,String sql,Object ... args);
/**
* 返回T的一个集合
* @param connection
* @param sql
* @param args
* @return
*/
List getForList(Connection connection,String sql,Object ... args);


/**
* 返回一个T的对象
* @param connection
* @param sql
* @param args
* @return
* @throws Exception 
*/
T get(Connection connection,String sql,Object ... args) throws Exception;


/**
* insert、update、delete

* @param connection:数据库连接
* @param sql:SQL语句
* @param args:填充占位符的可变参数

*/
void update(Connection connection,String sql,Object ... args);
}

第二步:class JdbcDaoImpl implements DAO:

package com.atguigu.getconntection;


import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;


import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;


/**
 * 使用QueryRunner 提供其机体的实现
 * @author Administrator
 *
 * @param :子列需传入的反省类型
 */
public class JdbcDaoImpl implements DAO {


private QueryRunner queryRunner=null;
private Classtype;

public JdbcDaoImpl(){
queryRunner=new QueryRunner();
type=ReflectionUtils.getSuperGenericType(getClass());

}
@Override
public void batch(Connection connection, String sql, Object... args) {
// TODO Auto-generated method stub

}


@Override
public E getForValue(Connection connection, String sql, Object... args) {
// TODO Auto-generated method stub
return null;
}


@Override
public List getForList(Connection connection, String sql, Object... args) {
// TODO Auto-generated method stub
return null;
}


@Override
public T get(Connection connection, String sql, Object... args) throws Exception {

return queryRunner
.query(connection, sql, new BeanHandler<>(type), args);
}


@Override
public void update(Connection connection, String sql, Object... args) {
// TODO Auto-generated method stub

}


}


第三步:

package com.atguigu.getconntection;


public class CustomerDao extends JdbcDaoImpl {

根据业务编写自己的方法
}



接口--类--自定义类关系

使用DBUtils编写通用的DAO_第3张图片



你可能感兴趣的:(使用DBUtils编写通用的DAO)