002醫學項目-主工程模組yycgproject三層構建(三大架構的整合)

來源:互聯網
上載者:User

標籤:

 

先給出項目結構圖:

Log4j.properties—》日誌設定檔

Db.properties----》串連資料庫

配置串連資料庫的參數

Mybatis/SqlMapConfig.xml---》 mybatis的核心設定檔

Mybatis配置項

Spring/applicationContext.xml  -àspring的核心設定檔

配置公用的內容:資料來源、交易管理

Spring/applicationContext- base-dao.xml   à配置dao

配置SqlSessionFactory,dao(mapper)

 

Spring/applicationContext-base-service.xml -à配置service

配置業務介面

Spring/Springmvc.xml---》配置springmvc

  處理器映射器

  處理器適配器

  視圖解析器

   攔截器

 

 

 

一:我們先整合Dao和Spring架構:

達到目標:將spring和mybatis整合,將spring管理dao介面。

讓spring對SqlSessionFactory管理,再由SqlSessionFactory自動產生sqlSession,SqlSession就是dao介面中要用的。

 

 

 

整合方式1(傳統的Dao方式)

程式員建立dao介面及dao介面的實作類別,

 

Dao介面實作類別繼承SqlSessionDaoSupport

在spring容器中配置dao介面,並將SqlSessionFactory注入到dao介面實現中,

在dao介面方法中調用this.getSqlSession()擷取SqlSession。

舉例:

介面實作類別繼承SqlSessionDaoSupport

使用此種方法需要編寫mapper介面,mapper介面實作類別、mapper.xml檔案

1、  在sqlMapConfig.xml中配置mapper.xml的位置

<mappers>

  <mapper resource="mapper.xml檔案的地址" />

<mapper resource="mapper.xml檔案的地址" />

</mappers>

 

2、  定義mapper介面

 

3、  實作類別整合SqlSessionDaoSupport

 

mapper方法中可以this.getSqlSession()進行資料增刪改查。

4、  spring 配置

     <!--  SessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 整合mybatis,包掃描 mapper檔案 -->
        <property name="configLocation" value="classpath:/mybatis/sqlMapConfig.xml"/>
    
    </bean>

<bean id=" " class="mapper介面的實現">

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

    </bean>

 

 

 

 

整合方式2用Mapper動態代理的方法:

 

程式員只需要編寫mapper介面(相當於dao介面),不需要編寫 mapper介面的實作類別,mybatis提供根據mapper介面和mapper.xml(對應檔)產生mapper介面動態代理對象(mapper介面的實現)。

 

具備什麼規則產生mapper代理對象:

Mapper.xml中的namespace等於mapper介面的地址。

Mapper.xml中定義的sql的id(mapped statement的id)等於mapper.java中方法名

Mapper.xml中定義的statement的parametertype等於mapper.java中方法的形參類型。

Mapper.xml中定義的statement的resultType等於mapper.java中方法的傳回值類型。

 

開發兩個檔案:mapper.java和mapper.xml

 

方式1:使用MapperFactoryBean

 第一步:

編寫mapper.xml:

<!-- SysuserMapperCustom就是mapper介面 -->

<mapper namespace="yycg.base.dao.mapper.SysuserMapperCustom">

  

   <!-- 根據id查詢使用者資訊 -->

   <select id="findSysuserById" parameterType="string"

   resultType="yycg.base.pojo.po.Sysuser">

      select * from sysuser where id = #{id}

   </select>

</mapper>

 

 

 第二步:

編寫mapper.java,

 

然後在spring容器中進行配置mapper:

 

使用MapperFactoryBean,根據mapper介面組建代理程式對象。

 

 

 mapper.xml和mapper.java不同名或不在一個目錄下的情況下,我們就要在SqlMapConfig.xml中去配置mapper.xml的地址。

注意:mapper.xml和mapper.java同名且在一個目錄 ,那麼不需要在SqlMapConfig.xml中載入mapper檔案。這特性是由MapperFactoryBean提供的。

 

 

 

使用MapperFactoryBean需要在spring容器對每個mapper進行配置,麻煩。所以就產生了Mapper動態代理的第二種方式。

 

l  方式2:使用mapper自動掃描器

 

使用mybaits和spring整合包中提供的mapper掃描器,自動掃描mapper,產生動態代理對象,在spring容器註冊。

 

 

 

配置mapper自動掃描器

 

 

 

開發兩個檔案:mapper.java和mapper.xml,注意:mapper.xml和mapper.java同名且在一個目錄

 

測試:

獲得spring容器,從容器中得SysuserCustomMapper

 

本系統採用掃描器方法建立mapper對象。

 

002醫學項目-主工程模組yycgproject三層構建(三大架構的整合)

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.