zoukankan      html  css  js  c++  java
  • 使用DBUtils编写通用的DAO

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

      

  • 相关阅读:
    【codeforces 755A】PolandBall and Hypothesis
    【codeforces 755B】PolandBall and Game
    【codeforces 755C】PolandBall and Forest
    Enhancing network controls in mandatory access control computing environments
    NPM 使用介绍
    【oracle】首次启动SQL Developer配置java.exe出错(Could not find jvm.cfg! )
    day70-oracle PLSQL_02光标
    day69-oracle 22-DBCA
    day70-oracle 12-Java调用存储过程和存储函数
    day17 16.关于sql注入与PreparedStatement介绍
  • 原文地址:https://www.cnblogs.com/yangHS/p/10846643.html
Copyright © 2011-2022 走看看