package commmm;
import java.util.List;
/**
* @author 冀帅
* @date 2020/8/14-15:46
* DAO:data(base) access object 数据访问对象
*/
public class DAO <T>{
//添加一条记录
public void add(T t){
}
//删除一条记录
public boolean remove(int index){
return false;
}
//修改一条记录
public void update(int index,T t){
}
//查询一条记录
public T getIndex(int index){
return null;
}
//查询多条记录
public List<T> getForList(int index){
return null;
}
//泛型方法
//举例:获取一个表中一共有多少条记录?E=Long
// 获取最大的员工入职时间?E=Date
public <E> E getValue(){
return null;
}
}
package commmm;
/**
* @author 冀帅
* @date 2020/8/14-15:52
*/
public class Customer {//此类对应数据库中customers表
}
package commmm;
/**
* 一张表对应一个类
* @author 冀帅
* @date 2020/8/14-15:53
*/
public class CustomerDAO extends DAO<Customer> {//只能操作某一个表的DAO
}
package commmm;
/**
* @author 冀帅
* @date 2020/8/14-16:00
*/
public class Student {//此类对应数据库中student 表
}
package commmm;
/**
* @author 冀帅
* @date 2020/8/14-16:01
*/
public class StudentDAO extends DAO<Student> {//只能操作某一个表的DAO
}
package commmm;
import org.junit.Test;
import java.util.List;
/**
* @author 冀帅
* @date 2020/8/14-15:57
*/
public class DAOTest {
@Test
public void test1(){
CustomerDAO dao1 = new CustomerDAO();
//只能操作Customer类型的
dao1.add(new Customer());
List<Customer> list = dao1.getForList(10);
StudentDAO dao2 = new StudentDAO();
//只能操作Student类型的
Student student = dao2.getIndex(1);
}
}