package com.atguigu.java2;import java.util.List;/** * @author Dxkstart * @create 2021-05-28 10:28 * * *DAO:data(base) access object ---数据访问对象 * */public class DAO <T>{//操作数据库中所有表的一些通用操作的DAO //添加一条记录 public void add(T t){ } //删除一条记录 public boolean remove(int index){ return false; } //修改一条记录 public void update(int index,T t){ } //查询一条记录 public T getIntex(int index){ return null; } //查询多条记录 public List<T> getForList(int index){ return null; } //泛型方法 //举例:获取表中一共有多少条记录?获取最大的员工入职时间? public <E> E getValue(){ return null; }}
package com.atguigu.java2;import org.junit.Test;import java.util.List;/** * @author Dxkstart * @create 2021-05-28 10:41 */public class DAOTest { @Test public void test1(){ CustomerDAO dao1 = new CustomerDAO(); dao1.add(new Customer()); List<Customer> list = dao1.getForList(10); StudentDAO dao2 = new StudentDAO(); Student student = dao2.getIntex(1); }}
package com.atguigu.java2;/** * @author Dxkstart * @create 2021-05-28 10:34 */public class Customer {//此类对应数据库中的customers表}
package com.atguigu.java2;/** * @author Dxkstart * @create 2021-05-28 10:36 */public class CustomerDAO extends DAO <Customer>{//只能操作Customer表的DAO}
package com.atguigu.java2;/** * @author Dxkstart * @create 2021-05-28 10:45 */public class Student {}
package com.atguigu.java2;/** * @author Dxkstart * @create 2021-05-28 10:45 */public class StudentDAO extends DAO<Student>{//只能操作Student表的DAO}