使用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; } }