1. 程式人生 > >Type interface is not known to the MapperRegistry.的解決辦法

Type interface is not known to the MapperRegistry.的解決辦法

經驗告訴我們這句錯誤是由於配置檔案缺失配置導致的~~~

在mybatis中新增如下的配置即可:

<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  <mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
還有可能就是:


延伸一下:

對映器(mappers)

既然 MyBatis 的行為已經由上述元素配置完了,我們現在就要定義 SQL 對映語句了。但是首先我們需要告訴 MyBatis 到哪裡去找到這些語句。 Java 在自動查詢這方面沒有提供一個很好的方法,所以最佳的方式是告訴 MyBatis 到哪裡去找對映檔案。你可以使用相對於類路徑的資源引用, 或完全限定資源定位符(包括 file:///

 的 URL),或類名和包名等。例如:

<!-- Using classpath relative resources --><mappers><mapperresource="org/mybatis/builder/AuthorMapper.xml"/><mapperresource="org/mybatis/builder/BlogMapper.xml"/><mapperresource="org/mybatis/builder/PostMapper.xml"/></mappers>
<!-- Using url fully qualified paths -->
<mappers><mapperurl="file:///var/mappers/AuthorMapper.xml"/><mapperurl="file:///var/mappers/BlogMapper.xml"/><mapperurl="file:///var/mappers/PostMapper.xml"/></mappers>
<!-- Using mapper interface classes --><mappers><mapperclass="org.mybatis.builder.AuthorMapper"/><mapper
class="org.mybatis.builder.BlogMapper"/><mapperclass="org.mybatis.builder.PostMapper"/></mappers>
<!-- Register all interfaces in a package as mappers --><mappers><packagename="org.mybatis.builder"/></mappers>
上述方式1和2是XML定義,3和4則是註解定義

XML定義是常用的方式,用法如下:

<select id="testMyBatisWorks" resultType="java.util.HashMap">
		 <![CDATA[  
		    {call pQueryAsyncNoticeList (
				    #{0,mode=IN,jdbcType=INTEGER}
			    )
		    }  
		]]>  
	</select>

註解則是:
/**
	 * 【proc列表】用儲存過程查詢得到列表
	 * @param asyncStatus
	 * @return
	 */
	@Select("exec pQueryAsyncNoticeList #{asyncStatus}")
	@Options(statementType=StatementType.CALLABLE)
	List<Map<String, Object>> getList2(int asyncStatus);

瞬間漲姿勢了~~~吼吼吼