Mybatis和spring的整合

Mybatis和spring的整合

 

一、整合目標

1、  更少的編碼

只寫接口,不寫實現類。

接口能告訴我們:返回的結果集是什麼、函數名是什麼、參數的類型及個數。

2、  更少的配置

(1)、別名:通常情況下是包名+類名,現在可以取個別名(通常情況下就是類名) ,mybatis幫我們進行包掃描,掃描對應的包,包裏面的類放到我們的別名系統中去。

                           

(2)、配置掃描:自動去裝配每個SQL XML文件,不需要手動的去配置

<!-- 自動掃描目錄下所有SQL映射的xml文件, -->

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

        <property name="dataSource" ref="dataSource"/>

        <property name="mapperLocations" value="classpath:com/founder/datacenter/dao/mapper/*.xml"/>

</bean>

 

(3)、dao的實現

<!-- 掃描指定包以及子包下的所有映射接口類 -->

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>

        <property name="basePackage" value="com.founder.datacenter.dao.mapper"/>

    </bean>

 

3、  足夠的靈活性

Mybatis的靈活性體現在可以自己定製SQL,自由傳遞參數,結果集自動賦值。而當spring和mybatis整合之後這些靈活性依然存在,可以用XML提供SQL,DAO接口來實現Mapper映射。

二、mybatis和spring的整合

spring-dao.xml

<!---1:配置數據庫相關參數properties的屬性:${url}--->

<context:property-placehodlerlocation="classpath:jdbc.property">

<!--2:數據庫的連接池-->

<beanid="dateSource"class="com.mchange.v2.c3p0.ComboPooledDataSource">

<!--配置連接池屬性-->

<propertyname="driverClass" value="${driver}">

<propertyname="jdbcUrl" value="${url}">

<propertyname="user" value="${username}">

<propertyname="password" value="${password}">

</bean>

<!---c3p0私有屬性--->

<propertyname="maxPoolSixe" value="30">

<propertyname="minPoolSixe" value="10">

<propertyname="autoCommitOnClose" value="false">

<propertyname="checkoutTimeout" value="1000">

<!--重試次數--->

<propertyname="acquireRetryAttempts" value="2">

 

<!--大多數情況下默認屬性就好了-->

 

<!--3:配置sqlSessionFactory對象--->

<beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">

<!--注入數據庫連接池-->

<propertyname="dataSource" ref="dataSource"/>

<!--配置Mybatis全局配置文件:mybatis-config.xml-->

<propertyname="configLocation"value="classpath:mybatis-config.xml">

<!--掃描entity包 使用別名 -->

<propertyname"typeAliasesPackage" value="org.seckilll.entity"/>

<!--掃描sql配置文件:mappper需要的xml文件-->

<propertyname="mapperLocation" value="classpath:mapper/*.xml" />

</bean>

 

<!--4:配置掃描Dao接口包,動態實現Dao接口,注入到Spring容器中-->

<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer"/>

<!--注入sqlSessionFactory的屬性-->

<propertyname="sqlSessionFactoryBeanName" value="sqlSessionFactory">

<!--給出dao接口包的掃描--->

<propertyname="basePackage" value="org.seckill.dao" />

</bean>

 

jdbc.property

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://127.0.0.1:3306/databaseName?useUnicode=true&characterEncoding=utf-8

username=root

password=root

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章