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> {
    
    
    }
    
    如果您觉得这篇文章帮助到了您,可以给作者一点鼓励



  • 相关阅读:
    PHP
    优秀网址
    客户关系管理系统CRM
    面试题
    练习并熟练掌握交互式 SQL 语言
    嵌入式的SQL程序设计
    数据库总结
    JDBC
    玩转Android之Drawable的使用
    Android开发之Activity转场动画
  • 原文地址:https://www.cnblogs.com/zhong-fucheng/p/7203000.html
Copyright © 2011-2022 走看看