個人理解:
1.mybatis-spring.jar 提供了SqlSessionTemplate類該類可以對數據庫進行CRUD操作(底層其實還是SqlSession)
2.我們可以集成SqlSessionTemplate重寫CRUD方法使其變得通用 主要就是讓返回值、方法名、參數通用
3.SqlSessionTemplate 需要一個sqlSessionFactory 可通過spring構造注入調用繼承類的構造方法並傳遞sqlSessionFactory參數其實就是super(sqlSessionFactory) 就是給 SqlSessionTemplate的sqlSessionFactory屬性賦值
4.通用DAO CRUD封裝示例:
//繼承SqlMapClientTemplate的類 /** * 普通查詢 * * @param statement * sql語句定義的id * @param parameters * 參數 * @return */ public int deleteBatch(final String statementName, final Collection<?> parameterObjects) throws DataAccessException { int i = 0; for (Object object : parameterObjects) { i += delete(statementName, object); } return Integer.valueOf(i); }
5.定義抽象Dao類用來給其他類實現並且聲明 繼承SqlMapClientTemplate的類為抽象屬性 在封裝一層CRUD
6.繼承抽象類的類 可擴展額外的屬性等
7.可參考:https://blog.csdn.net/acweilisky0825/article/details/52032867