zoukankan      html  css  js  c++  java
  • 泛型在Web中的作用

    当我们写网页的时候,常常会有多个DAO,我们要写每次都要写好几个DAO,这样会有点麻烦。

    这里写图片描述

    那么我们想要的效果是什么呢??只写一个抽象DAO,别的DAO只要继承该抽象DAO,就有对应的方法了。

    要实现这样的效果,肯定是要用到泛型的。因为在抽象DAO中,是不可能知道哪一个DAO会继承它自己,所以是不知道其具体的类型的。而泛型就是在创建的时候才指定其具体的类型。

    • 抽象DAO
    
    
    public abstract class BaseDao<T> {
    
        //模拟hibernate....
        private Session session;
        private Class clazz;
    
    
        //哪个子类调的这个方法,得到的class就是子类处理的类型(非常重要)
        public BaseDao(){
            Class clazz = this.getClass();  //拿到的是子类
            ParameterizedType  pt = (ParameterizedType) clazz.getGenericSuperclass();  //BaseDao<Category>
            clazz = (Class) pt.getActualTypeArguments()[0];
            System.out.println(clazz);
    
        }
    
    
        public void add(T t){
            session.save(t);
        }
    
        public T find(String id){
            return (T) session.get(clazz, id);
        }
    
        public void update(T t){
            session.update(t);
        }
    
        public void delete(String id){
            T t = (T) session.get(clazz, id);
            session.delete(t);
        }
    
    }
    • 继承抽象DAO,该实现类就有对应的增删改查的方法了。

    CategoryDao

    
    public class CategoryDao extends BaseDao<Category> {
    
    }
    

    BookDao

    
    public class BookDao extends BaseDao<Book> {
    
    
    }
    
    如果您觉得这篇文章帮助到了您,可以给作者一点鼓励



  • 相关阅读:
    如何让实现整站变灰色调 (一般用于悼念活动)
    .net 泛型集合排序,查找
    Windows 2003服务器远程桌面配置
    .net 读取文件数据
    .net 验证工具类
    MS-SQL 基本语法大全
    SQL NVARCHAR和VARCHAR限制
    SQL SERVER DATETIME应用
    SQL事务在存储过程的应用
    移除button点击时的黑边
  • 原文地址:https://www.cnblogs.com/zhong-fucheng/p/7203000.html
Copyright © 2011-2022 走看看