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