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

      

  • 相关阅读:
    IOS TextField伴随键盘移动
    解决github提交commit,contributions不统计显示绿色的问题
    jQuery选择器
    jQuery之DOM操作
    iOS监听电话事件
    Docker网络代理设置
    Oracle数据库之PL/SQL过程与函数
    Oracle数据库之FORALL与BULK COLLECT语句
    Oracle数据库之事务
    Oracle数据库之PL/SQL游标
  • 原文地址:https://www.cnblogs.com/yangHS/p/10846643.html
Copyright © 2011-2022 走看看