Mybatis整合Spring -- typeAliasesPackage

Mybatis整合Springspring

       根據官方的說法,在ibatis3,也就是Mybatis3問世以前,Spring3的開發工做就已經完成了,因此Spring3中仍是沒有對Mybatis3的支持。sql

所以由Mybatis社區本身開發了一個Mybatis-Spring用來知足Mybatis用戶整合Spring的需求。下面就將經過Mybatis-Spring來整合Mybatis跟數據庫

Spring的用法作一個簡單的介紹數組

MapperFactoryBean

       首先,咱們須要從Mybatis官網上下載Mybatis-Spring的jar包添加到咱們項目的類路徑下,固然也須要添加Mybatis的相關jar包和Spring的mybatis

相關jar包。咱們知道在Mybatis的全部操做都是基於一個SqlSession的,而SqlSession是由SqlSessionFactory來產生的,SqlSessionFactory又app

是由SqlSessionFactoryBuilder來生成的。可是Mybatis-Spring是基於SqlSessionFactoryBean的。在使用Mybatis-Spring的時候,咱們也須要ui

SqlSession,並且這個SqlSession是內嵌在程序中的,通常不須要咱們直接訪問。SqlSession也是由SqlSessionFactory來產生的,可是Mybatis-Springspa

給咱們封裝了一個SqlSessionFactoryBean,在這個bean裏面仍是經過SqlSessionFactoryBuilder來創建對應的SqlSessionFactory,進而獲取到對應的code

SqlSession。經過SqlSessionFactoryBean咱們能夠經過對其指定一些屬性來提供Mybatis的一些配置信息。因此接下來咱們須要在Spring的applicationContextxml

配置文件中定義一個SqlSessionFactoryBean

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
       <property name="dataSource" ref="dataSource" />  
       <property name="mapperLocations"  
              value="classpath:com/tiantian/ckeditor/mybatis/mappers/*Mapper.xml" />  
       <property name="typeAliasesPackage" value="com.tiantian.ckeditor.model" />  
</bean>  

 在定義SqlSessionFactoryBean的時候,dataSource屬性是必須指定的,它表示用於鏈接數據庫的數據源。固然,咱們也能夠指定一些其餘的屬性,下面簡單列舉幾個:

  •  mapperLocations:它表示咱們的Mapper文件存放的位置,當咱們的Mapper文件跟對應的Mapper接口處於同一位置的時候能夠不用指定該屬性的值
  • configLocation:用於指定Mybatis的配置文件位置。若是指定了該屬性,那麼會以該配置文件的內容做爲配置信息構建對應的SqlSessionFactoryBuilder,可是後續屬性指定的內容會覆蓋該配置文件裏面指定的對應內容
  •  typeAliasesPackage:它通常對應咱們的實體類所在的包,這個時候會自動取對應包中不包括包名的簡單類名做爲包括包名的別名。多個package之間能夠用逗號或者分號等來進行分隔(value的值必定要是包的全)
  •  typeAliases:數組類型,用來指定別名的。指定了這個屬性後,Mybatis會把這個類型的短名稱做爲這個類型的別名,前提是該類上沒有標註@Alias註解,不然將使用該註解對應的值做爲此種類型的別名(value的值必定要是類的徹底限定名)
<property name="typeAliases">  
    <array>  
        <value>com.tiantian.mybatis.model.Blog</value>  
        <value>com.tiantian.mybatis.model.Comment</value>  
    </array>  
</property>  
  • plugins:數組類型,用來指定Mybatis的Interceptor
  •  typeHandlersPackage:用來指定TypeHandler所在的包,若是指定了該屬性,SqlSessionFactoryBean會自動把該包下面的類註冊爲對應的TypeHandler。多個package之間能夠用逗號或者分號等來進行分隔
  •  typeHandlers:數組類型,表示TypeHandler
相關文章
相關標籤/搜索