org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.dminfo.base.common.mapper.ExtMapper.selectList
时间: 2024-01-16 11:18:51 浏览: 23
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.dminfo.base.common.mapper.ExtMapper.selectList 是MyBatis框架中的一个异常,表示绑定的SQL语句无效或未找到。这个异常通常发生在使用MyBatis进行数据库操作时,当绑定的SQL语句在配置文件中未定义或拼写错误时会抛出该异常。
要解决这个异常,你可以按照以下步骤进行操作:
1. 确认SQL语句是否正确定义:检查你的MyBatis配置文件中是否正确定义了名为com.dminfo.base.common.mapper.ExtMapper.selectList的SQL语句。确保语句的命名空间、ID和参数类型都正确无误。
2. 检查Mapper接口和XML文件的对应关系:确保你的Mapper接口和XML文件之间的对应关系正确。在Mapper接口中使用@Mapper注解或在XML文件中使用<mapper>标签指定接口的全限定名。
3. 检查Mapper接口方法的命名规范:确保Mapper接口中的方法名与XML文件中定义的SQL语句ID一致。MyBatis会根据方法名自动匹配对应的SQL语句。
4. 检查Mapper接口方法的参数类型:确保Mapper接口方法的参数类型与SQL语句中定义的参数类型一致。如果参数类型不匹配,MyBatis会抛出BindingException异常。
5. 检查Mapper接口方法的返回类型:确保Mapper接口方法的返回类型与SQL语句中定义的返回类型一致。如果返回类型不匹配,MyBatis会抛出BindingException异常。
6. 检查MyBatis配置文件是否正确加载:确保你的MyBatis配置文件正确加载,并且配置文件中的<mapper>标签正确指定了XML文件的路径。
7. 检查数据库连接是否正常:如果以上步骤都没有问题,那么可能是数据库连接出现了问题。检查数据库连接的配置是否正确,并确保数据库服务正常运行。
下面是一个示例代码,演示了如何解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.dminfo.base.common.mapper.ExtMapper.selectList异常:
```java
// 确认SQL语句是否正确定义
// 在com.dminfo.base.common.mapper.ExtMapper.xml文件中定义SQL语句
<select id="selectList" parameterType="java.util.Map" resultType="com.dminfo.base.common.model.ExtModel">
SELECT * FROM ext_table WHERE column = #{param}
</select>
// 检查Mapper接口和XML文件的对应关系
@Mapper
public interface ExtMapper {
List<ExtModel> selectList(Map<String, Object> param);
}
// 检查Mapper接口方法的命名规范
// Mapper接口方法名与XML文件中定义的SQL语句ID一致
// 检查Mapper接口方法的参数类型
// Mapper接口方法的参数类型与SQL语句中定义的参数类型一致
// 检查Mapper接口方法的返回类型
// Mapper接口方法的返回类型与SQL语句中定义的返回类型一致
// 检查MyBatis配置文件是否正确加载
// 确保mybatis-config.xml文件中的<mapper>标签正确指定了XML文件的路径
// 检查数据库连接是否正常
// 确保数据库连接的配置正确,并确保数据库服务正常运行
```