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

      

  • 相关阅读:
    Docker 部署 ElasticSearch-Head
    linux安装kibana-7.6.1
    CentOS部署ElasticSearch7.6.1集群
    linux 安装mysql 8
    Docker安装Mysql,并搭建一主一从复制集群,一主双从,双主双从集群
    linux 挂载光盘,rmp,yum
    git多账号登录问题
    js动态添加事件-事件委托
    yii2 RESTful api的详细使用
    yii2 ActiveRecord多表关联以及多表关联搜索的实现
  • 原文地址:https://www.cnblogs.com/yangHS/p/10846643.html
Copyright © 2020-2023  润新知