首页 > 其他分享 >解决mybatis resultMap根据type找不到对应的包问题

解决mybatis resultMap根据type找不到对应的包问题

时间:2023-02-08 11:47:34浏览次数:42  
标签:resultMap resulttype 别名 mybatis type id

目录
  • mybatis resultMap根据type找不到对应的包
    • mybatis resultMap根据type找不到对应的包
    • 这里需要配置typeAliasesPackage 自动配置别名
    • typeAliasesPackage定义多个时,用逗号分隔
    • 加上配置后别名启用成功,程序正常运行
  • resultmap和resulttype的一些使用误区
    • 直接来测试代码
    • 接下来我们来定义一个<resultMap>
    • 然后我们修改一下上面的配置
    • 接下来看一下他们之间的不同点

 

mybatis resultMap根据type找不到对应的包

 

mybatis resultMap根据type找不到对应的包

当将包名替换为全路径名时,程序又正常运行

 

这里需要配置typeAliasesPackage 自动配置别名

以下是项目中原有的别名扫描,但是我新建的mapper文件夹不在此路径下,没有别名设置所以报错。

 

typeAliasesPackage定义多个时,用逗号分隔

 

加上配置后别名启用成功,程序正常运行

 

resultmap和resulttype的一些使用误区

mybatis的映射配置文件中的两个返回值类型resultmap和resulttype;

 

直接来测试代码


<select id="getUser" parameterType="string" resultType="pojo.User">
	select id,username,userpwd from t_users where id=#{id}
</select>

这是正确的,resulttype在这里是类的全类名,这样执行没有任何问题;

结果就是我们想要的。

 

接下来我们来定义一个<resultMap>


<resultMap id="user" type="pojo.User" >  
    <id column="id" property="id"  />  
    <result column="username" property="username" />  
    <result column="userpwd" property="userpwd"  /> 
  </resultMap> 

 

然后我们修改一下上面的配置


<select id="getUser" parameterType="string" resultMap="user">
	select id,username,userpwd from t_users where id=#{id}
</select>

我们把resulttype改成resultmap然后取了<resultMap>中的id;运行结果也是正常的;跟上面打印的是一样的;

 

接下来看一下他们之间的不同点

当看到这种错误的时候,就说明用的resulttype指定到<resultMap>中的id上去了;


  <select id="getUser" parameterType="string" resultType="user" >
		select id,username,userpwd from t_users where id=#{id}
	</select>

想让上面的配置起作用该怎么改?那就是使用别名:在mybatis-config.xml中加入


<typeAliases>
	<typeAlias alias="user" type="pojo.User"/>
</typeAliases>

这里的alias就是resulttype的值;以上只是我们书写时容易注意不到的部分。

注意:mybatis返回的类型:那一定是map类型了,就是键值对的形式返回数据;但是我们使用resulttype时,会把map中的值取出来赋值给对象的属性。

标签:resultMap,resulttype,别名,mybatis,type,id
From: https://www.cnblogs.com/dituirenwu/p/17101157.html

相关文章

  • 关于mybatis resulttype 返回值异常的问题
    目录mybatisresulttype返回值异常例如:resulttype="student"但是当中有些字段为空例如:数据库字段为:s_name实体类字段为namemybatisresultType="map"的常见问题一、......
  • MyBatis-Plus——saveOrUpdate方法如何确定主键
    saveOrUpdate方法:先更新,更新失败返回0;发起查找,查找失败返回0,最后进行插入操作有三种执行情况1.插入的数据不带id插入成功。同时MyBatis-Plus会自动生成一个19位的id,默认主......
  • 整合MyBatis
      创建实现类的目的,sqlsession私有sqlsession通过在配置文件中的构造方法注入到实现类的私有属性中,test方法只做一件事,就是通过getbean生成实现类对象,然后调用方法输......
  • SpringBoot集成mybatis
    SpringBoot创建项目首先创建好项目,详情见:https://www.cnblogs.com/expiator/p/15844275.htmlSpringBoot引入mybatis依赖<dependency><groupId>org......
  • MyBatis核心配置文件
    <?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-confi......
  • Apache pdfbox java.io.IOException: The TrueType font null does not contain a 'cm
    尝试使用Apachepdfbox添加中文到pdf中,发现出现TheTrueTypefontnulldoesnotcontaina'cmap'table,主要原因是遍历pdf页数时调用PDDocument#save导致清空fontsToSu......
  • typescript基础用法
    一、特点TypeScript是添加了类型系统的JavaScript,适用于任何规模的项目。TypeScript是一门静态类型、弱类型的语言。TypeScript是完全兼容JavaScript的,它不会修......
  • TypeDB Forces 2023 (Div. 1 + Div. 2, Rated, Prizes!) (B,C,D)
    TypeDBForces2023(Div.1+Div.2,Rated,Prizes!)(B,C,D)BB这道题的大意是给你一个数\(n\),我们可以把这个\(n\),变成\(x_1^{y_1}*x_2^{y_2}......x_j^{y_j......
  • mount时发生错误:wrong fs type, bad option, bad superblock on
    现象:#mount/dev/sdb1/data              mount:wrongfstype,badoption,badsuperblockon/dev/sdb,           missingcodepageor......
  • mount挂载nfs远程目录报错mount: wrong fs type, bad option, bad superblock
    远程挂载发生错误在远程服务器上挂载时报错[root@k8s-node1~]#mount192.168.10.7:/data/datamount:wrongfstype,badoption,badsuperblockon192.168.10.7:/d......