解决mybatis报错 There is no getter for property named ... in 'class java.lang.String'

发生这个的原因就是对于的属性字段没有书写正确,导致报错。

这类型的报错类似There is no getter for property named ... in 'classXXX。一个主要原因是在xml中进行参数配置的时候,参数名称书写错误。这个也是我遇到的问题。

为了避免这类问题,就要了解mybatis配置文件中parameterType这个属性。

这个属性的值可以为:

1,简单类型,int,Integer,String等

2,对象类型,User类

3,集合类型,Map,List等

针对上面的列子给出几个简单的demo。

a,简单类型,

<select id="selectUsers" resultType="User" parameterType="int">
  select id, username, password
  from users
  where id = #{id}
</select>
这类简单的数据类型可以不写,类似下面这样。
<select id="selectUsers" resultType="User">
  select id, username, password
  from users
  where id = #{id}
</select>

b,对象类型,User是自己的一个实体类,包含id,username,password。

<insert id="insertUser" parameterType="User">
  insert into users (id, username, password)
  values (#{id}, #{username}, #{password})
</insert>

c,这个比较复杂,分为两种情况,一种是List集合类型,一种是Map类型。

如果是List,那么直接使用foreach循环就可以了。

map的话,在传递参数的时候要注意,参数名称和key值一定要对应。这一点我再之前的博客里说过,这里不再赘述,有兴趣的话可以看看,文章

到这里,对这种主要参数传递应该有了解了,为了避免出错,在写代码的时候要特别注意,参数和parameterType中传递的是否相同。如果不同,就会出现一些莫名的问题。

学无止境

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值