簡體   English   中英

在Maven中找不到要去的聲明?

[英]Cannot find declaration to go to in maven?

當我運行測試類(CountryMapperTest.java)時,發生了錯誤。 以下是錯誤信息。

org.apache.ibatis.exceptions.PersistenceException: 
### Error building SqlSession.
### The error may exist in tk.mybatis.simple.mapper.CountryMapper.xml
### Cause: org.apache.ibatis.builder.BuilderException:
    Error parsing SQL Mapper Configuration. 
    Cause: java.io.IOException: 
    Could not find resource tk.mybatis.simple.mapper.CountryMapper.xml

項目目錄

項目目錄

通過分析錯誤消息,我認為該錯誤來自mybatis-config.xml文件中的以下語句。

<mappers>
    <mapper resource="tk.mybatis.simple.mapper.CountryMapper.xml"/>
</mappers>

我嘗試了一些對其他人有用的解決方案:

  1. 檔案| 無效的緩存/重啟
  2. 選擇目錄| 將目錄設為資源根等。
  3. 在pom.xml中添加相對代碼片段:
<resource>
  <directory>src/main/java</directory>
    <includes>
      <include>**/*.xml</include>
    </includes>
  </resource>
</resources>

相對碼

CountryMapperTest.java
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<mapper namespace="tk.mybatis.simple.mapper.CountryMapper">
  <select id="selectAll" resultType="Country">
    select id,countryname,countrycode from country
  </select>
</mapper>
MyBatis的-config.xml中
 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <setting name="logImpl" value="LOG4J"/> </settings> <typeAliases> <package name="tk.mybatis.simple.model"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"> <property name="" value=""/> </transactionManager> <dataSource type="UNPOOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> <property name="username" value="root"/> <property name="password" value="12345"/> </dataSource> </environment> </environments> <mappers> <mapper resource="tk.mybatis.simple.mapper.CountryMapper.xml"/> </mappers> </configuration> 
CountryMapper.xml
 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="tk.mybatis.simple.mapper.CountryMapper"> <select id="selectAll" resultType="Country"> select id,countryname,countrycode from country </select> </mapper> 

我希望查詢數據庫並在控制台中顯示數據。

更多細節

  • IDE:IntelliJ IDEA,2019.1
  • 作業系統:macOS Mojave,10.14.3

映射器資源路徑應以斜杠分隔。

<mapper resource="tk/mybatis/simple/mapper/CountryMapper.xml"/>

http://www.mybatis.org/mybatis-3/configuration.html#mappers

除了ave的解決方案,我們還需要檢查包的命名和路徑。

因為IntelliJ IDEA中的光學包裝命名是相同的 ,所以兩者都是tk.mybatis.simple.mapper

實際上,正確的路徑是tk/mybatis/simple/mapper ,錯誤路徑是tk.mybatis.simple.mapper

請按照以下方法進行檢查:

  1. 檔案| 項目結構...
  2. 單擊模塊| 您的項目名稱| 來源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM