泛型:泛型在DAO中的应用

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);
	}
	
}

猜你喜欢

转载自lipiaoshui2015.iteye.com/blog/2264474