解決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。
推薦閱讀:
- MyBatis實現兩種查詢樹形數據的方法詳解(嵌套結果集和遞歸查詢)
- Spring整合Mybatis的全過程
- Java面試題沖刺第九天–MyBatis2
- ssm mybatis如何配置多個mapper目錄
- mybatis映射和實際類型不一致的問題