`
bugyun
  • 浏览: 557017 次
社区版块
存档分类
最新评论

mybatis 参数为id的坑

 
阅读更多

 Error querying database.  Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.Integer'

 

报错原因:

	<select id="selectUser" parameterType="int" resultType="User">
		select * from user 
		 where 
		 	<if test=" id != null ">id = #{id}</if>
	</select>

 

修改代码:

	<select id="selectUser" parameterType="int" resultType="User">
		select * from user where id=#{id}
	</select>

或者

	<select id="selectUser" parameterType="int" resultType="User">
		select * from user  where
		 	<if test=" _parameter != null ">id = #{_parameter}</if>
	</select>

 

 

 

引起原因,网上说是:

Mybatis默认采用ONGL解析参数,所以会自动采用对象树的形式取Integer.id值,引起报错

分享到:
评论

相关推荐

    mybatis 动态sql及参数传递

    在实际开发过程中,我们往往需要编写复杂的SQL语句,拼接稍有不注意就会导致错误,Mybatis给开发者提供了动态SQL,大大降低了拼接SQL导致的错误。 动态标签 if标签 if标签通常用那个胡where语句,update语句,insert...

    总结--Mybatis传递参数的几种方法

    Mybatis 传递参数的几种方法 Mybatis 中传递参数有多种方法,以下是其中的四种: 1. 传递单个参数 在 Mybatis 中,传递单个参数非常简单。可以直接将参数写在方法中,参数类型可以是 String,也可以是基本类型,...

    深入了解MyBatis参数

    这里的sex将被记录为参数名,而age将被记录为参数名1。 MyBatis参数处理的重要性 ------------------------- 参数处理是MyBatis框架中非常重要的一部分,深入了解参数处理过程和参数传递方式可以帮助我们更好地...

    mybatis获取自增ID

    ### MyBatis获取自增ID知识点详解 #### 一、MyBatis简介 MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以...

    mybatis 日志 sql参数替换工具

    非常好用的,就是你们所要的 Mybatis日志参数快速替换占位符 sql参数替换工具html

    Mybatis Log(自动填充sql参数打印到控制台)

    当日志级别设置为`DEBUG`时,Mybatis 将输出包括SQL语句和参数在内的详细信息。 在Mybatis的Mapper接口或XML配置文件中,我们通常会定义带有动态参数的SQL语句。例如: ```java public interface UserMapper { @...

    关于MyBatis参数传入#{index}的问题的解决方案【源码】

    #{index}是预编译的参数,它会将参数值转化为PreparedStatement的参数,有助于防止SQL注入。而${index}则是在SQL字符串中直接替换变量,不进行预编译,存在安全风险。 在多参数的情况下,MyBatis通常推荐使用Map...

    Mybatis多参数查询与列表查询不同方式实现

    这样,当某个参数为null时,对应的条件就不会出现在SQL语句中。 5. **集合参数**: 如果需要根据一组ID查询,可以使用`&lt;foreach&gt;`标签遍历集合。例如,查询ID列表中的所有用户: ```xml &lt;select id=...

    MyBatis拦截器:给参数对象属性赋值的实例

    当拦截器的`intercept`方法被调用时,它首先获取到方法的所有参数,并打印当前线程ID。然后,它遍历这些参数,检查每个参数的类型。这里重点关注的是第一个参数,因为它是`MappedStatement`,包含了SQL命令的类型。 ...

    mybatis-plus分布式ID实现.rar

    项目中的代码截取自mybatis-plus-3.5项目源码中分布式ID的实现,主要是内容是Mybatis-plus项目中IdentifierGenerator接口的两个实现类DefaultIdentifierGenerator和ImadcnIdentifierGenerator的源码,还有IdWorker工具...

    MyBatis拦截器分页与动态修改SQL及其参数值

    在这个主题中,我们将深入探讨如何利用MyBatis拦截器实现分页以及动态地修改SQL语句和参数值。 首先,我们关注的是"PaginationInterceptor.java",这是一个常见的分页拦截器实现。在MyBatis中,我们可以创建自定义...

    实现mybatis-只有一个参数传递的查询+代码+注释

    `#{id}`是MyBatis的参数占位符,它会自动处理参数的绑定。 在Java代码中,我们可以使用SqlSession对象来执行Mapper接口的方法。SqlSession是MyBatis的核心,它提供了执行SQL查询和操作数据库的能力。以下是如何调用...

    MybatisGenerate_代码生成_tkMybatis_mybatisgenerate_mybatis_

    总结起来,MybatisGenerate结合tk.mybatis,为开发者提供了一套完整的解决方案,它简化了Mybatis的使用,提升了开发效率,降低了维护成本。通过熟练掌握和运用这个工具,可以有效地提升开发团队的生产力,让开发者更...

    mybatis-plus id主键生成的坑

    2. 关闭 MyBatis-Plus 的自动 ID 生成功能:如果你希望使用数据库自身的自增 ID 功能,可以在实体类的 id 字段上添加 `@TableId` 注解,并将 type 设置为 `IdType.AUTO`,如下所示: ```java @TableId(value = "id...

    mybatis demo mybatis 实例

    3. 自动类型映射:MyBatis能自动将数据库结果集转换为Java对象,同时也支持自定义的类型处理器以处理特定类型的映射。 4. 缓存机制:MyBatis内置了本地缓存和二级缓存,能够提高数据读取效率,减少对数据库的访问。...

    mybatis-3-mybatis-3.2.6

    6. **MappedStatement**:封装了SQL语句及其相关信息,如ID、参数映射、结果映射等。它是MyBatis执行SQL的依据。 7. **ParameterHandler**:处理SQL参数,将Java对象转化为JDBC能识别的参数,通常使用ParameterMap...

    MyBatis参数处理实现方法汇总

    多个参数会被MyBatis封装成一个Map,键名为`param1`到`paramN`,或参数的索引。例如,如果有两个参数`id`和`name`,则在SQL中可以使用`#{param1}`和`#{param2}`来获取它们的值。 3. **命名参数**: 使用`@Param`...

    Mybatis现学现用

    MyBatis排序时使用order by 动态参数时需要注意,用$而不是# 字符串替换 默认情况下,使用#{}格式的语法会导致MyBatis创建预处理语句属性并以它为背景设置安全的值(比如?)。这样做很安全,很迅速也是首选做法,...

Global site tag (gtag.js) - Google Analytics