泛型的应用以及Dao层业务的思想

泛型的应用以及Dao层业务的思想

泛型

泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。通俗来讲,也就是说就是一个不确定的类的类型,可以根据业务需要来进行改变而达到业务开发的需求。

Dao层业务的思想方法

–>Data Access Object 简称数据库访问对象。用于对数据库数据的增删改查。
下面这个例子是利用集合来存取数据进行数据的增删改查。

  1. 创建三个类–>Pojo、Dao、Test 这是这个测试的流程。这里先创建User类:

  private int id;
  private String name;


  public int getId() {
      return id;
  }

  public void setId(int id) {
      this.id = id;
  }

  public String getName() {
      return name;
  }

  public void setName(String name) {
      this.name = name;
  }

  @Override
  public String toString() {
      return "User{" +
              "id=" + id +
              ", name='" + name + '\'' +
              '}';
  }

  @Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      User user = (User) o;
      return id == user.id &&
              Objects.equals(name, user.name);
  }

  @Override
  public int hashCode() {
      return Objects.hash(id, name);
  }

  public User(int id, String name) {
      this.id = id;
      this.name = name;
  }
  1. UserDao层的设计 里面的参数key为String,Value为泛型(T),对Map的集合的增删改查。
Map<String ,T> map = new HashMap<String, T>();

       //增加操作
       public void add(String id,T t) {
           map.put(id,t);
       }

       //得到某个对象的值
       public T getT(String id) {
           T t = map.get(id);
           return t;
       }
       //更新
       public void update(String id,T entity) {
           //利用map的put方法将新的id覆盖旧的id
           map.put(id,entity);
       }
       //返回一个List集合
       public List<T> getList() {
           List<T> list = new ArrayList<T>();
           //取出key值,由String类型接收
           for(String s : map.keySet()) {
               //先得到key值
               list.add(map.get(s));
           }
               return list;
       }
       //删除
       public void delete(String id) {
           map.remove(id);
       }
  1. 测试类 对新创建的userDao进行增删改查的测试。

       UserDao<User> userDao = new UserDao<User>();
       userDao.add("2",new User(1,"小明"));
       userDao.add("3",new User(2,"小胡"));
       User u = userDao.getT("2");
       //System.out.println(u);
       //更新
       userDao.update("3",new User(5,"杜兰特"));
      // System.out.println(userDao.getT("3"));
       //返回List对象集合
       List list = userDao.getList();
       //System.out.println(list);
       //删除id为3的对象
       userDao.delete("5");
       System.out.println(list);

   }

每天进步一点点,积少成多。加油,为了你爱的人。每天都要奋斗!

猜你喜欢

转载自blog.csdn.net/weixin_40961551/article/details/88671563