1. 程式人生 > >Mybatis 運用泛型減少DAO層程式碼

Mybatis 運用泛型減少DAO層程式碼

    在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>()