idea下maven+ssm搭建时遇到的问题的解决方法

针对昨天遇到的问题,在这里记录下解决方法。

1.mapper.xml里的sql显示No data sources are configured to run this SQL and provide advanced。

出现以下情况,右边显示黄色警告,虽然对写代码不影响,但看起来很难受。
在这里插入图片描述在右边配置一下数据库信息就好了。在这里插入图片描述在Datebase里选择‘+’,然后在Date Source里选择对应的数据库。
在这里插入图片描述配置完成后点击Test Connection ,如果显示Successful Details就表示数据库连接成功,确认之后问题就解决了。

2.自动注入时出现Error报错。

在setting里找到这里,把Error改成其他类型就可以了

在这里插入图片描述

3*.mapper.xml没被读取

这个运行了好几遍没有发现,以前用eclipse没有出现这种问题,报错是这样的。

Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.Le.mapper.DMapper.selectD

出现的原因是DMapper.xml没有被读取,这里需要在pom.xml里的标签中添加一段配置

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

这样就可以读取到mapper.xml了

4.spring容器加载

spring配置文件位置:
在这里插入图片描述

 <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/applicationContext-*.xml</param-value>
  </context-param>

路径为classpath:spring/applicationContext-*.xml。

5.空指针异常

报错内容:Request processing failed; nested exception is java.lang.NullPointerException

一开始为了查找哪里出的问题,在controller里对service进行new了一个实例调用,后来忘了改回去,都改完以后以为配置出错了,查了好几遍配置也没出问题,才发现controller里的对象是new出来的。

专门新建了一个类进行测试:

这是AService的实现类,里面用了spring的自动注入,放进去了dMapper属性。
在这里插入图片描述
测试类里用new的方式创建AService实例,分别调用AService类里的两个实现类
在这里插入图片描述
结果是没有自动注入属性的方法正常执行,而执行到有自动注入的findAll时,出现了空指针异常,检查发现找不到dMapper这个属性。。
在这里插入图片描述
这种情况出现的原因是测试时将DMapper以new的形式实例化出来,并没有交给spring进行管理,此时无法得到spring对DMapper初始化得到的实例,由于不存在DMapper的实例,在调用DMapper里的方法时自然产生了空指针异常。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值