1、com.atguigu.generic.BaseDao.java
package com.atguigu.generic; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 泛型在DAO中的应用 * @author LiPiaoShui */ public class BaseDao<T> { //存储数据的Map private Map<String,T> map = new HashMap<String,T>(); /** * 添加信息 */ public void save(String id,T t) { map.put(id, t); } /** * 删除信息 */ public void delete(String id) { map.remove(id); } /** * 修改信息 */ public void update(String id, T t) { map.put(id, t); } /** * 获取信息 */ public T get(String id) { return map.get(id); } /** * 获取全部信息 */ public List<T> getAll() { List<T> list = new ArrayList<T>(); for(String key:map.keySet()) { list.add(map.get(key)); } return list; } }
2、com.atguigu.generic.Employee.java
package com.atguigu.generic; /** * 雇员信息 * @author LiPiaoShui */ public class Employee { private int id; private String name; private int age; public Employee() { super(); } public Employee(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } 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; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Employee [id=" + id + ", name=" + name + ", age=" + age + "]"; } }
3、com.atguigu.generic.EmployeeDao.java
package com.atguigu.generic; /** * 雇员信息操作DAO * @author LiPiaoShui */ public class EmployeeDao extends BaseDao<Employee> { }
4、测试用例
//7.泛型在DAO中的应用 @Test public void test7() { //创建雇员信息 Employee emp1 = new Employee(1,"张三", 30); Employee emp2 = new Employee(2,"李四", 40); Employee emp3 = new Employee(3,"王五", 50); //创建EmployeeDao EmployeeDao empDao = new EmployeeDao(); //添加雇员信息 empDao.save("1001", emp1); empDao.save("1002", emp2); empDao.save("1003", emp3); //查看雇员信息 Employee emp = empDao.get("1002"); //输出:Employee [id=2, name=李四, age=40] System.out.println(emp); //查看全部雇员信息 List<Employee> empList = empDao.getAll(); for(Employee e:empList) { //输出:Employee [id=3, name=王五, age=50] // Employee [id=1, name=张三, age=30] // Employee [id=2, name=李四, age=40] System.out.println(e); } //修改雇员信息 emp2.setName("李四AAA"); empDao.update("1002", emp2); //删除雇员信息 empDao.delete("1001"); //查看全部雇员信息 List<Employee> empList2 = empDao.getAll(); for(Employee e:empList2) { //输出:Employee [id=3, name=王五, age=50] // Employee [id=2, name=李四AAA, age=40] System.out.println(e); } }