一.因为是org.apache.ibatis.binding.BindingException错误,所以一直以为的原因以下几种
1.mapper接口(GoodsMapper.java)是否与mapper.xml(GoodsMapper)是否在同一个包下,但因为我写的是SpringBoot项目,所以说,是肯定不在一起的,只需要在mapper.xml中引入mapper接口的即可,如下:
mapper namespace="com.wonderment.assembly.mapper.GoodsMapper
2.mapper namespace引入的名称是否与mappe接口相同,所以我就直接把名字复制了一遍。
<mapper namespace="com.wonderment.assembly.mapper.GoodsMapper"></mapper>
3.mapper接口中的方法名(
void insertGoods(Goods goods);方法名是insertGoods)需要与mapper.xml中的一条sql的id<insert id="insertGoods"></insert>一致
4.如果mapper接口中的方法的返回值是List集合,那么在mapper.xml里面需要配置resultMap="实体的包名与类名",不要用resultType
5.是否在pom文件中引入了
<resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.yml</include> </includes> <filtering>true</filtering> </resource> </resources>
二.但最后发现我的都不是这些错误,而且我发现我的关注点错了,我应该找后面的错误
Mapper method 'com.wonderment.assembly.mapper.GoodsMapper.insertGoods' has an unsupported return type: class com.wonderment.assembly.entity.Goods
XX method: xx has an unsupported return type:XX
然后我也发现,起始我的数据它是执行成功的,我数据库里面是有增加数据的,但是其实是他回滚的时候出现了错误,然后我才发现,其实我是写的insert sql语句,所以是不需要返回值,我写了返回实体对象,所以修改一下mapper接口中方法的返回值为void即可