Mybatis整合Spring -- typeAliasesPackage
根據官方的說法,在ibatis3,也就是Mybatis3問世之前,Spring3的開發工作就已經完成了,所以Spring3中還是沒有對Mybatis3的支援。
因此由Mybatis社群自己開發了一個Mybatis-Spring用來滿足Mybatis使用者整合Spring的需求。下面就將通過Mybatis-Spring來整合Mybatis跟
Spring的用法做一個簡單的介紹
MapperFactoryBean 首先,我們需要從Mybatis官網上下載Mybatis-Spring的jar包新增到我們專案的類路徑下,當然也需要新增Mybatis的相關jar包和Spring的
相關jar包。我們知道在Mybatis的所有操作都是基於一個SqlSession的,而SqlSession是由SqlSessionFactory來產生的,SqlSessionFactory又
是由SqlSessionFactoryBuilder來生成的。但是Mybatis-Spring是基於SqlSessionFactoryBean的。在使用Mybatis-Spring的時候,我們也需要
SqlSession,而且這個SqlSession是內嵌在程式中的,一般不需要我們直接訪問。SqlSession也是由SqlSessionFactory來產生的,但是Mybatis-Spring
給我們封裝了一個SqlSessionFactoryBean,在這個bean裡面還是通過SqlSessionFactoryBuilder來建立對應的SqlSessionFactory,進而獲取到對應的
SqlSession。通過SqlSessionFactoryBean我們可以通過對其指定一些屬性來提供Mybatis的一些配置資訊。所以接下來我們需要在Spring的applicationContext
配置檔案中定義一個SqlSessionFactoryBean
複製程式碼 複製程式碼 在定義SqlSessionFactoryBean的時候,dataSource屬性是必須指定的,它表示用於連線資料庫的資料來源。當然,我們也可以指定一些其他的屬性,下面簡單列舉幾個:
mapperLocations:它表示我們的Mapper檔案存放的位置,當我們的Mapper檔案跟對應的Mapper介面處於同一位置的時候可以不用指定該屬性的值 configLocation:用於指定Mybatis的配置檔案位置。如果指定了該屬性,那麼會以該配置檔案的內容作為配置資訊構建對應的SqlSessionFactoryBuilder,但是後續屬性指定的內容會覆蓋該配置檔案裡面指定的對應內容 typeAliasesPackage:它一般對應我們的實體類所在的包,這個時候會自動取對應包中不包括包名的簡單類名作為包括包名的別名。多個package之間可以用逗號或者分號等來進行分隔(value的值一定要是包的全) typeAliases:陣列型別,用來指定別名的。指定了這個屬性後,Mybatis會把這個型別的短名稱作為這個型別的別名,前提是該類上沒有標註@Alias註解,否則將使用該註解對應的值作為此種類型的別名(value的值一定要是類的完全限定名) 複製程式碼 com.tiantian.mybatis.model.Blog com.tiantian.mybatis.model.Comment 複製程式碼 plugins:陣列型別,用來指定Mybatis的Interceptor typeHandlersPackage:用來指定TypeHandler所在的包,如果指定了該屬性,SqlSessionFactoryBean會自動把該包下面的類註冊為對應的TypeHandler。多個package之間可以用逗號或者分號等來進行分隔 typeHandlers:陣列型別,表示TypeHandler