关于IDEA创建maven 的mybatis 的系列坑---java.io.IOException: Could not find resource SqlMapConfig.xml......

最近尝试mybatis的使用,遇到了各种坑,仿佛让我遇到了所有能出现的错,现将主要的坑记录下来,供大家吐槽和批评指正:

本问题使用的是IDEA+maven+mybatis。

  • java.io.IOException: Could not find resource SqlMapConfig.xml
InputStream inputStream =
        Resources.getResourceAsStream("SqlMapConfig.xml");//需要将配置文件放在classes里面

直接这么写报的错,因为我是创建了单独的资源文件resource,把配置文件是放在resource里面的,试了各种路径写法,绝对路径都不行,就是这么拽。

     最后试了可以用的解决办法:

a 第一种亲自测试可行

InputStream inputStream = new FileInputStream("src/SqlMapConfig.xml"); // 相对路径,项目下的路径
b第二种 将配置文件拷贝到项目文件下的target/classes,这种一点都不爽,可能自己用IDEA和mybatis不熟,求拍醒。
  • org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.ssm.mapper.UserMapper.selectByExample

这种也是tmd不爽,主要是不清楚配置详情。

解决办法需要将UserMapper.xml类似的配置文件放在接口同一目录下,是同一目录...也就是

a、xml文件所在的package名称要和interface对应的package名称对应;
b、xml文件的namespace要和xml文件的package名称一一对应;
c、检查函数名称能否对应上。

光这些还不够,还需要在pom.xml文件的build下加入:

<resources>
      <resource>
        <directory>src/main/java/</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
      </resource>
      <resource>
        <directory>src/resources</directory>
      </resource>
    </resources>

这样问题就解决了。真尼玛坑爹啊...

  • Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.XXX.BaseResultMap

因为我是用的mybatis-generator-core生成的接口、实体和xml配置文件,这个问题本以为是那儿配置的问题,但是研究来研究去,在读xml文件的时候发现生成的代码的resultMap(mybatis标签)有多个,并且id名称是一样的,因此报的错误。我将重名的id全部删除就可以了,生成的代码很多很复杂也很冗余,也是尼玛的坑。

 <resultMap id="BaseResultMap" type="cn.ssm.po.User">
    <result column="id" jdbcType="INTEGER" property="id" />
    <result column="username" jdbcType="VARCHAR" property="username" />
    <result column="birthday" jdbcType="DATE" property="birthday" />
    <result column="sex" jdbcType="CHAR" property="sex" />
    <result column="address" jdbcType="VARCHAR" property="address" />
  </resultMap>

这三个是尝试遇到的比较难解决的问题,还有其他各种idea的小问题这里就不做书写了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值