在ORM开发中,针对不同的类型,一般需要编写不同的DAO类来处理与数据库的数据传递。
一般包括:添加(add)、修改(update)、根据条件查询符合数(getCount)、根据条件查询符合列表(getPage)、获得某一条数据(get)、删除(delete);
当然还包括其他一些根据具体业务场景需要提供的额外接口。
比如:学生(User)、教室(ClassRoom)、教师(Teacher),建立Dao,就有想对应的IUserDao、IClassRoomDao、ITeacherDao
每一个Dao接口中又需要有“增删改查”操作,这时可以使用泛型来来处理,从而减少代码量,
定义一个IBaseDao的接口,如下:
public interface IBaseDao<T> {
int add(T t);
int update (T t);
int getCount(@Param("searchName")String search);
List<T> getPage(@Param("searchName")String search,@Param("start")int start,@Param("num")int num);
T getById(@Param("id")int id);
List<T> getAll();
int delete(@Param("id")int id);
}
编写IUserDao、IClassRoomDao、ITeacherDao 集成 IBaseDao;
注:Mybatis xml 文件中
<mapper namespace="com.bs.dao.IUserDao" > namespace的值要求全局唯一,所以需要创建接口
public interface IUserDao extends IBaseDao<User>()
public interface ITeacherDao extends IBaseDao<Teacher>()
public interface IClassRoomDao extends IBaseDao<ClassRoom>()