解決mybatis中的mapper命名問題

mybatis mapper命名問題

mapper文件中id命名最好首字母小寫,避免讓mybatis認為是一個類

    <!--獲取供應商列表-->
    <resultMap id="ProviderList" type="Provider">
        <result property="id" column="id"/>
        <result property="proCode" column="proCode"/>
        <result property="proName" column="proName"/>
        <result property="proDesc" column="proDesc"/>
        <result property="proContact" column="proContact"/>
        <result property="proPhone" column="proPhone"/>
        <result property="proAddress" column="proAddress"/>
        <result property="creationDate" column="creationDate"/>
    </resultMap>
    <select id="getProviderList" parameterType="Provider" resultMap="ProviderList">
        select * from smbms_provider provider
        where proName like CONCAT('%', #{proName}, '%')
    </select>

其中resultMap的id名稱為ProviderList ,會將ProviderList理解為一個類,映射不到

    <resultMap id="ProviderList" type="Provider">
        <result property="id" column="id"/>
        <result property="proCode" column="proCode"/>
        <result property="proName" column="proName"/>
        <result property="proDesc" column="proDesc"/>
        <result property="proContact" column="proContact"/>
        <result property="proPhone" column="proPhone"/>
        <result property="proAddress" column="proAddress"/>
        <result property="creationDate" column="creationDate"/>
    </resultMap>

會發生異常,正確寫法為將ProviderList的首字母小寫,即為避免問題mapper文件中id值小寫

Mybatis中接口和對應的mapper文件命名為什麼需要一樣?

背景:

自己對於Mybatis現階段隻處於會用的階段,有些問題,自己還是想深入的瞭解一下。就拿Mybatis的接口文件和mapper文件命名需要一致來開始。

解決:

當我們將接口和mapper文件放在同一個包裡的時候,Mybatis會進行自動掃描,這種方式要註意此時java接口的名稱和mapper文件的名稱要相同,否則會報異常。

這個時候我們需要配置MapperScannerConfigurer來讓在 Spring 的 XML 配置文件中註冊所有的映射器。相反,你可以使用一個 MapperScannerConfigurer,

它 將 會 查 找 類 路 徑 下 的 映 射 器 並 自 動 將 它 們 創 建 成 MapperFactoryBean。

創建MapperScannerConfigurer:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  <property name="basePackage" value="com.bijian.study.dao" />  
</bean>  

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: