使用DBUtils编写通用的DAO
/**
* 访问数据的DAO接口
* 里面定义访问数据表的各种方法
* @param <T>:Dao处理的实体类的类型
*/
public interface DAO1<T> {
/**
* 批量处理的方法
* @param connection
* @param sql
* @param args:填充占位符的Object[]类型的可变参数
*/
void batch(Connection connection,String sql,Object...args);
/**
* 返回具体的一个值,例如总人数
* @param connection
* @param sql
* @param args
* @param <E>
* @return
*/
<E> E getForValue(Connection connection,String sql,Object...args);
/**
* 返回T的一个集合
* @param connection
* @param sql
* @param args
* @return
*/
List<T> getForList(Connection connection,String sql,Object...args);
/**
* 返回一个T对象
* @param connection
* @param sql
* @param args
* @return
*/
T get(Connection connection,String sql,Object...args);
/**
* INSERT UPDATE DELETE
* @param connection:数据库连接
* @param sql:SQL语句
* @param args:填充占位符的可变参数
*/
void update(Connection connection,String sql,Object...args);
}
DAO实现类
/**
* 使用QueryRunner提供其具体的实现
* @param <T>
*/
public class DAO1Impl<T> implements DAO1<T>{
private QueryRunner queryRunner = null;
private Class<T> type;
public DAO1Impl() {
queryRunner = new QueryRunner();
type =;
}
@Override
public void batch(Connection connection, String sql, Object... args) {
}
@Override
public List getForList(Connection connection, String sql, Object... args) {
return null;
}
@Override
public T get(Connection connection, String sql, Object... args) {
return queryRunner.query(connection,sql, new BeanHandler<>(type),args);
}
@Override
public void update(Connection connection, String sql, Object... args) {
}
@Override
public <E> E getForValue(Connection connection, String sql, Object... args) {
return null;
}
}