[MyBatis]取参数【#】和【$】//出错There is no getter for property named 'id' in class 'java.lang.Interger'

测试里

 public void select01() throws IOException {
  start();
  PersonMapper mapper = sqlSession.getMapper(PersonMapper.class);
  Person person = mapper.getPersonById(1);
  System.out.println(person);
  sqlSession.close();
  log.debug("test");

 }

如果是【#】

等于占位符

 <select id="getPersonById"
            resultType="com.yiki.Entity.Person">
    select pid,p_name pname,email from Person where pid = #{id}
  </select>

控制台为



【javaType】


【jdbcType】数据库类型

通常在某种特定情况下使用,在数据为null的时候,有些数据库可能不能识别mybatis对null的默认处理

一般用于oracle环境下

一般格式为#{name,jdbcType=NULL}

如果你name为空,用的jdbcType的空值


【mode】

如果为【$】

不安全!不要乱用,多用于原生sql不支持占位符的地方才用

    <select id="getPersonById"
            resultType="com.yiki.Entity.Person">
    select pid,p_name pname,email from Person where pid = ${id}
  </select>

控制台为


错误解决

There is no getter for property named 'id' in class 'java.lang.Integer',由于我实体类的pId为Integer包装类

解决办法为在Dao接口层加上@parm

public Person getPersonById(@Param("id") Integer id);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值