学习Mybatis时犯过的错误

我只是想在jsp页面加入一个jstl表达式
servlet传值到后台 jsp显示在页面上
在这里插入图片描述
哦天哪 为什么我的表达式会出现在页面上

Unknown tag (c:forEach).

不认识这个标签
一般解决bug时值会专注于红色的错号 很少会把黄色的警告放在心上 导致一直找不到错误在哪里
在这里插入图片描述

注意引入jstl标签库

在使用jstl的jsp文件中,要引入jstl标签库,例如

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

但是我不小心把“c”敲成了大写 “C” 所以就有了上述的错误

You have an error in your SQL syntax;

说明SQL语句有问题 根据控制台的报错快速索引到该语句附近
或者尝试在后台输出SQL语句
拼接SQL语句

StringBuilder sql=new StringBuilder("select ID,command,description,content from message where 1=1");

where 1=1 是为了 在需要条件查询时在后面拼接条件
看起来没有错误

StringBuilder sql=new StringBuilder("select ID,command,description,content from message where 1=1 ");
			//where 1=1 为了方便后边拼接条件语句
			List<String> paramList = new ArrayList<String>();
			if(command != null&& !"".equals(command.trim())){
				sql.append("and command=?");
				paramList.add(command);
			}

可是执行报错You have an error in your SQL syntax;
在后台输出SQL语句
显示select ID,command,description,content from message where 1=1and command=‘查看’
原因就碍于 两个条件用and连接 and前少了空格
解决方法:初始化SQL语句时 在where 1=1 后加一个空格即可

拼接模糊查询语句

sql.append(" and description like '%' ? '%'");//模糊查询

注意**’%’ ? '%'之间的空格**这样才能将传进来的参数和%拼接在一起 否则查询无效

项目名称出现红色感叹号

在这里插入图片描述
右击eclipse项目的bulid path–>configure build path,在弹出来的窗口中,找到Libraries页签,可以看到一些jar包是红色叉号的,这种jar包就是找不到对应文件的jar包,引起这种eclipse项目前面出现红色叹号,可能是因为从外部导入的项目或者是因为某些文件被删除了,才导致红色惊叹号。找到这些eclipse项目中没有的jar包,删除它,然后重新在本地导入所需的jars。

There is no getter for property named ‘command’ in ‘class bean.Command’

去浏览器搜索的话一般会得到这种解决方法
然后百度上一般就是给出这种方案:
如果参数是#{oneParameter},则改成#{_parameter},在接口中定义方法时 增加“@Param(“oneParameter”)” 标记

只看字面意思的话 会觉得command类中缺少了getter 可是不一定就是因为少了这个
应该去查看自己的中是不是有 错误

比如说 写另外一个查询语句时为了方便直接将之前写好的一个复制过来 改改参数 却遗漏了某一个未改
因为变量名拼写 所以导致了 报错 找不到对应的getter
加油 我是最棒的!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值