泛型的应用以及Dao层业务的思想
泛型
泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。通俗来讲,也就是说就是一个不确定的类的类型,可以根据业务需要来进行改变而达到业务开发的需求。
Dao层业务的思想方法
–>Data Access Object 简称数据库访问对象。用于对数据库数据的增删改查。
下面这个例子是利用集合来存取数据进行数据的增删改查。
- 创建三个类–>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;
}
- 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);
}
- 测试类 对新创建的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);
}
每天进步一点点,积少成多。加油,为了你爱的人。每天都要奋斗!