前几天在完成作业的过程中,遇到了两个问题,总结一下,日后遇到相同问题时,方便查询
一、项目导入,出现红色感叹号
问题
这个问题出现在导入项目之后,当我将上课编写的项目导入到自己的电脑中后,项目的图标出现一个红色的感叹号
如图所示:
在这种情况下,除了项目图标出现感叹号外,其他文件均没有显示表示错误红色×图标,但是点开文件,却发现部分内容出现了代表错误的红色下划线,且项目无法正常运行
原因
这个问题的出现,大都是因为jar包而出现问题,有三种情况
- 1.项目中引用了不存在的jar包,比如项目中引用了servlet-api.jar ,但是lib文件夹下却不存在该jar包
- 2.项目的JDK版本与当前电脑所安装的JDK版本不一致
- 3.由于项目中导入的jar包数量过多,全选一起导入的时候,导入了非jar包的其他文件,比如*.txt或其他后缀的文件
第三种情况,解决方式十分简单,只需要删除非*.jar文件的引用即可
前两种情况的解决方式大致相同,这里我遇到的是因为JDK版本不统一而导致的
解决方式:
选中出现感叹号的项目,右击,Build Path ——> Configure Build Path,如图所示
或者,选中项目,按住Alt+Enter,也可以达到同样的效果
在弹出的窗口中,Java Build Path ——> Libraries,就可以看到,显示JRE出现问题
项目所使用的是1.8.0_112,而我自己的电脑安装的则是1.8.0_341
选中报错的JRE,点击Remove,将错误的JRE删除
删除后,点击Add Libary,重新添加正确的JRE
选中JRE System Libary,点击next,如图所示
保持默认,不需要更改,直接点击Finish,如图所示
这里就可以看到电脑安装的JDK的版本
点击OK后,就可以看到出现红色感叹号的项目已经恢复正常了,打开文件也没有标红了
二、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);
uname、upwd是别名,对应UserMapping.xml
UserMapper.xml
select userid,username,userpwd
from tb_User
where username=#{uname} and userpwd=#{upwd} and userstatus='管理员'