SSM易犯小错误总结

本次任务完成时间:2020年5月8日
开发工具与关键技术:Eclipse、Java
一、下面是在查询数据的时候,Console报的一个错,如下图:
在这里插入图片描述
在这里插入图片描述
总的说,就是Could not set property ‘xxx’ of 'class ‘xxx’ with value ‘xxx’,报这个错的原因是因为我自己自定义的一个VO,因为VO里的某些字段,如时间的字段在VO定义的数据类型是String,而不是DateTime。那么问题就来了,在mapping中时间字段是在BaseResultMap中,其数据类型是TIMESTAMP,自定义的VO即使继承BaseResultMap还是会报上面的那个错。

解决办法:1、把那个报错的字段复制到自定义的resultMap,然后继承BaseResultMap
2、把VO中的所有字段在mapping的XML文件重新定义resultMap,不用再继承
BaseResultMap,如图:
在这里插入图片描述这两种都可以解决,圈出的是有报错的字段
同时也要注意property所对应的值要和实体类的字段保持一致,否则可能也会出错,还有就是Vo的字段一定要和Mapping中xxx.XML的字段一样,否则会报缺少属性

2、在SSM中经常会遇到一些需求那就是根据下拉框的值来筛选出数据,可能这并不是很难实现,但是对于SSM并还是很熟悉的时候,就遇到了一个坑。
当时在mapping的XML文件中写sql语句,写条件查询的时候,刚开始并没有判断状态ID是否大于0,或者其它的条件是否为空,就直接写了,但是没有报错,也可以根据条件筛选出结果,就是初始化数据的时候,没有数据显示,只能通过筛选条件的时候,才能出现数据,当时很懵,不知道为什么初始化数据的时候,数据条数显示为0条。后来,才知道根据条件筛选数据要加上判断,否则会初始化不了数据,如下图:

在这里插入图片描述
原因:因为当你没有在SQL语句进行条件判断,在初始化数据的时候,那么这时候当其执行的时候,条件为空时,其执行到条件的时候,不会跳出条件,而是继续执行,全部的条件拼接起来执行,所以查询出的数据就会显示0条,因为全部条件拼接起来查询,并没有这条数据。
下面的效果图是加了条件判断查询的数据,这时初始化数据就可以出来了:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值