当前位置: 首页 > 知识库问答 >
问题:

MyBatis中的“类型类不为映射注册表所知”

黄凌龙
2023-03-14

我得到了一个错误,输入类myPackage。MapperRegistry不知道MyClass。

我成功地获取了一个会话,在调试时,我可以看到它似乎配置正确,因此接口关联似乎正在工作;因此,我相信这个错误不同于堆栈溢出建议的Type接口是未知的...问题。

我是myBatis的新手,但从文档中我了解到,以下是使resultType自动映射工作所需的全部内容。

更新:按xml文件而不是按类映射映射映射器资源时也会发生这种情况。

public interface MyClassMapper{
    MyClass getMyClass(Integer id);
}
public class MyClass{
    private String itemValue;

    public String getItemValue() {
        return itemValue;
    }

    public void setItemValue(String itemValue) {
        this.itemValue = itemValue;
    }
}
<?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="myPackage.orm.sqlMap.MyClassMapper" >

    <select id="getMyClass" resultType="myPackage.MyClass" >
     select itemValue 
     from SOME_TABLE 
     WHERE id = #{id}
    </select> 
</mapper>
 ...
 <mappers>
      <mapper class="myPackage.MyClass" />
 </mappers>
 ...

共有3个答案

高慈
2023-03-14

我通过将映射器XML添加到mybatis XML配置文件中解决了这个问题

  <mappers>    
    <mapper resource="com/java/Mapper.xml"/>
  </mappers> 
秦俊豪
2023-03-14

在映射器中。xml文件映射器的命名空间应该是映射器接口的路径。

例如:

<mapper namespace="com.mapper.LineMapper">
<select id="selectLine" resultType="com.jiaotong114.jiaotong.beans.Line">
select * from bus_line where id = #{id}
</select>
</mapper>

映射器接口应位于com中。mapper包,其名称为LineMapper。

希望有帮助。

谷梁英资
2023-03-14

固定:

    public MyClass getMyClassValue(Integer id) throws Exception{
         SqlSession session = MyBatisSessionFactory.openSession();
         MyClassMapper mapper = (MyClassMapper) session.getMapper(MyClass.class);
         return mapper.getMyClass(id);
     }

这是我用来执行查询的代码,发现我是通过模型类名而不是映射器接口名在映射器注册表中查找映射器的。现在一切正常。

 类似资料:
  • 我对Flutter编程非常陌生,我正在尝试导入一个本地JSON文件,其中包含书籍数据,如标题、作者、发布年份等。 最初我使用JSON-to-DART转换器来组装一个图书数据模型,现在我正在尝试创建一个函数,在该函数中,程序获取本地JSON文件,并使用类中的方法将数据解析为地图。 我遇到的问题是返回类型

  • 我在尝试使用JSON_serializable序列化从internet获取的复杂JSON并使用FutureProvider将它们连接在一起时遇到了这个问题。这是json文件, 这是包含序列化类的代码, 获取json文件并将其转换为dart的未来提供者, 这是基因编码, 这是转换后的json文件显示的代码 当我试着运行这个项目时,我遇到了这个错误 i/flutter(23347): type'Lis

  • 我是一个新的颤振和得到类型错误。我正在尝试使用json自动序列化。 在做了一些调整后这里看起来是这样的 下面是我如何尝试从api获取数据 我的类如下所示 谁能帮我一下吗。我被困在这里了。我一直在尝试不同的方法,但都不管用。非常感谢。

  • 你好,我正在做一个api调用,在那里我得到了一系列的横幅。我正在犯错误- 横幅。飞奔 横幅。飞奔 api_base_助手。飞奔 得到你的横幅。飞奔

  • 因此,我创建了一个应用程序,通过api读取数据,并尝试解析JSON api 这是我的错误截图 我试着把它改成一个列表,但它仍然读取一个错误 这是我的密码大象。飞奔 如何纠正此错误?请帮忙

  • 我试图获得用户信息后,用户输入电子邮件和密码。我使用的api会返回我用户的额外信息,所以我尝试从中获取这些信息。 我试图解析这个json: 这些是我的模型: 这是我发送电子邮件、密码和获取用户数据的部分: 这是给我错误的部分 我打印了响应体,它给出了我想要的字符串,但是jsonDecode返回了一个列表,所以我不能使用它。我怎样才能解决这个问题?提前谢谢。