常见原因分析
MyBatis-Plus的insert方法报错Invalid bound statement通常是由于SQL映射文件与接口方法未正确绑定导致。可能的原因包括:
- 未使用MyBatis-Plus专用的
MybatisSqlSessionFactoryBean - XML映射文件路径配置错误
- 实体类与数据库字段映射不匹配
解决方案
替换SqlSessionFactory实现类 传统MyBatis的SqlSessionFactoryBean需替换为MyBatis-Plus的MybatisSqlSessionFactoryBean:
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean factoryBean = new MybatisSqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath*:mapper/**/*.xml"));
return factoryBean.getObject();
}
检查XML文件路径配置 确保配置文件中包含正确的扫描路径:
mybatis-plus:
mapper-locations: classpath*:mapper/**/*.xml
验证字段映射 实体类字段需与数据库字段保持一致,建议使用注解:
@TableName("question_tag")
public class QuestionTag {
@TableId
private Long id;
@TableField("tag_name")
private String tagName;
}
排查建议
- 检查XML文件是否位于
resources/mapper/目录下,避免多层子目录 - 确认接口全限定名与XML中的
namespace完全匹配 - 使用Maven清理编译缓存后重新构建项目
补充说明
若使用Spring Boot,可直接通过@MapperScan注解指定接口包路径:
@SpringBootApplication
@MapperScan("com.ag.empbs.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
MyBatis-Plus BindingException解决
5万+

被折叠的 条评论
为什么被折叠?



