问题总结

407 阅读3分钟

前几天在完成作业的过程中,遇到了两个问题,总结一下,日后遇到相同问题时,方便查询

一、项目导入,出现红色感叹号

问题

这个问题出现在导入项目之后,当我将上课编写的项目导入到自己的电脑中后,项目的图标出现一个红色的感叹号

如图所示:

image.png

在这种情况下,除了项目图标出现感叹号外,其他文件均没有显示表示错误红色×图标,但是点开文件,却发现部分内容出现了代表错误的红色下划线,且项目无法正常运行

image.png

image.png

原因

这个问题的出现,大都是因为jar包而出现问题,有三种情况

  • 1.项目中引用了不存在的jar包,比如项目中引用了servlet-api.jar ,但是lib文件夹下却不存在该jar包
  • 2.项目的JDK版本与当前电脑所安装的JDK版本不一致
  • 3.由于项目中导入的jar包数量过多,全选一起导入的时候,导入了非jar包的其他文件,比如*.txt或其他后缀的文件

第三种情况,解决方式十分简单,只需要删除非*.jar文件的引用即可

前两种情况的解决方式大致相同,这里我遇到的是因为JDK版本不统一而导致的

解决方式:

选中出现感叹号的项目,右击,Build Path ——> Configure Build Path,如图所示

或者,选中项目,按住Alt+Enter,也可以达到同样的效果

1.png

在弹出的窗口中,Java Build Path ——> Libraries,就可以看到,显示JRE出现问题

项目所使用的是1.8.0_112,而我自己的电脑安装的则是1.8.0_341

image.png

选中报错的JRE,点击Remove,将错误的JRE删除

image.png

删除后,点击Add Libary,重新添加正确的JRE

image.png

选中JRE System Libary,点击next,如图所示

image.png

保持默认,不需要更改,直接点击Finish,如图所示

这里就可以看到电脑安装的JDK的版本

image.png

点击OK后,就可以看到出现红色感叹号的项目已经恢复正常了,打开文件也没有标红了

image.png

二、Parameter 'groupId' not found. Available parameters are [arg1, arg0, param1, param2]报错

问题

在MyBatis的过程中出现报错

Parameter 'begin' not found. Available parameters are [arg1, arg0, param1, param2]

原因

mapper.xml映射没有得到传入的参数

当传入的参数只有一个的时候,就不需要设定@Param,因为接口参数只有一个,无论接口参数名是什么,这个时候mapper.xml映射都可以接受到参数

当传入的的参数>1的时候,就会出现该报错,MyBatis参数集的默认值如报错所显示的,[0, 1, param1, param2],如果不使用默认值,就需要加上@Param注解起别名。加了注解之后,MyBatis的参数集就和第一种情况相同了

解决方法:

方法一:设置下标

UserMapper.xml

select userid,username,userpwd
from tb_User
where username=#{0} and userpwd=#{1} and userstatus='管理员'

方法二:(定义别名)

UserMapper.java

public abstract User Login(@param("uname")String uname, @param("upwd")String upwd);

unameupwd是别名,对应UserMapping.xml

UserMapper.xml

select userid,username,userpwd
from tb_User
where username=#{uname} and userpwd=#{upwd} and userstatus='管理员'