首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

MyBatis 配置文件重複 <mappers> 標籤導致構建 SqlSession 失敗

     編輯:程式設計疑難解答

錯誤信息

org.apache.ibatis.builder.BuilderException: Error creating document instance.
Cause: org.xml.sax.SAXParseException; lineNumber: 23; columnNumber: 17;
元素類型為 "configuration" 的內容必須匹配
"(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".

問題原因

SqlMapConfig.xml 中出現了兩個 <mappers> 標籤,違反了 MyBatis 配置文件 DTD 規範,configuration 元素只允許有一個 mappers 子元素。

錯誤配置示例

<mappers>
    <mapper resource="mappers/UserMapper.xml" />
</mappers>
<mappers>  <!-- 重複的 mappers 標籤 -->
    <mapper resource="mappers/UserMapper.xml"></mapper>
    <mapper resource="mappers/EmployeeMapper.xml"></mapper>
</mappers>

正確配置

合併為單一 <mappers> 標籤:

<mappers>
    <mapper resource="mappers/UserMapper.xml" />
    <mapper resource="mappers/EmployeeMapper.xml" />
</mappers>

排查建議

  • 仔細檢查 XML 配置文件結構,確保符合 DTD 順序和唯一性約束。
  • 使用 IDE 的 XML 驗證功能可快速發現此類結構錯誤。

修正後重新構建 SqlSessionFactory 即可恢復正常。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved