![](/img/trans.png)
[英]With mybatis-spring and MapperScannerConfigurer reuse resultMap in multiple Mapper xml files
[英]using MapperScannerConfigurer with spring3, mybatis, and mybatis-spring
在我的applicationContext.xml中,我有以下內容
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="formularyDb" />
<property name="configLocation" value="file:/web/sites/drugformulary-spring/config/mybatis-config.xml" />
<property name="mapperLocations" value="file:/web/sites/drugformulary-spring/mappers/*.xml" />
<!--<property name="mapperLocations" value="classpath*:org/myd/formulary/mappers/*.xml" />-->
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--<property name="basePackage" value="org.myd.formulary.drugmaster.dao" />-->
<property name="basePackage" value="org.myd.formulary.drugmaster" />
</bean>
如果我具有屬性名稱=“ basePackage” value =“ org.myd.formulary.drugmaster” ,則找不到我在org.myd.formulary.drugmaster.dao中的DAO(DrugMasterDao)我會得到*錯誤:
無效的綁定語句(未找到):
但是,如果我將其更改為property name =“ basePackage” value =“ org.myd.formulary.drugmaster.dao ,則會找到DrugMasterDao
我想將dao與它的控制器和服務放在同一包中。 所以我想知道如何在不同軟件包中使用不同的dao來執行此操作(使用MapperScannerConfigurer)? 它們都將在org.myd.formulary下
您可能應該檢查一下jpetstore代碼結構的樣子。 Mapper接口用於映射在xml配置中定義的sql語句,然后您可以簡單地將自動創建的mapper bean注入或自動裝配到DAO bean中。 可以說(假設映射器接口是MyMapper):
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="org.myd.formulary.drugmaster.persistence" />
</bean>
<bean id="myDAO" class="org.myd.formulary.drugmaster.dao.MyDAO">
<property name="mapper" ref="myMapper" />
</bean>
這才是最終的工作
<bean id="drugmasterScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="org.myd.formulary.**.dao"/>
</bean>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.