Use DBUtils write generic DAO

Original link: http://www.cnblogs.com/yangHS/p/10846643.html

Use DBUtils write generic 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 implementation

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

  

Reproduced in: https: //www.cnblogs.com/yangHS/p/10846643.html

Guess you like

Origin blog.csdn.net/weixin_30500289/article/details/94786064