java 项目开发中踩坑记录

69 阅读1分钟

1.mapper.xml中文件和 mapper文件关联报错

Invalid bound statement (not found): 出现这个报错是有这么几个原因

1. mapper.xml中的namespace和实际的mapper文件路径不一致 这个namespace="com.xx.项目名.mapper.xxMapper"

2. mapper.xml中的id标签参数要和mapper接口中的方法名保持一致 (这个id=xxMapper中你写的方法名称)

3. 上面两个都没有问题的话 就看看是不是 resources 文件夹中的 application.yml(有的是application.properties)文件中
   这个配置的路径对不对mapper有没有写错
   mybatis.mapper-locations= classpath:mapper/*.xml (<--这个东西在你配置mysql连接的地方 (mapper(这个东西
   你看下你的xml放的文件夹名字跟这个保持一致)/*.xml))
4.上面这几条都是对的 还是报这个错 再看下xml中namespace的mapper文件路径是不是有空格 
            namespace=" com.xx.xx.mapper"(✖)    namespace="com.xx.xx.mapper"(✔)

在xml文件中编写查询 运行测试代码的时候报这个错 failed to load applicationcontext

  • 报这个错是因为select上的resultType现在还是resultType="xxid" 没有改为resultMap="xxid"
 resultMap
   id属性:标签给这个映射负责分配一个唯一的id值 对应的就是resultMap="id属性的值" 属性的取值
   type属性:取值是一个类 表示的是数据库中的查询结果与Java中哪个实体类进行结果集的映射
  result
      column属性:表示表中的字段名称
      property属性:属性表示类中的属性名称
 select: 
     select: 语句咱执行的时候 查询的结果是一个对象 多个对象
     resultType:表示查询的结果集类型 只需要指定对应映射类型并且包含完整接口 
     resultMap: 标签当表的资源和类的对象属性字段名称不一致时 来自定义查询结果集的映射规则
     
     
     
<resultMap id="UserEntityMap" type="com.cy.项目名.entity.xxEntity">
    <id property="id" column="id"></id>
    <result property="clas" column="CLass"></result>
</resultMap>

<select id="queryAllKinds"  resultMap="KindAllMap">
    SELECT * FROM xxList
</select>

持续更新中。。。。。。