今天写了条件查询
虽然思路上还说是比较顺,但是还是写了一晚上,因为老是在细节上出现bug,改了好久,踩了好几个坑。
首先大概是因为组件不是确定的,我把ref属性绑定在router-view上,导致我获取不到条件选择组件的值。
所以这里就没用到昨天学习的ref,我还是使用了emit+监听的方法。
(此处目前我还不知道为什么我的其中一个变量值,为什么在点击搜索键之后变成了undefined,有点莫名其妙,因为同组件中的另一个值并没有改变)
然后呢,后端写条件查询的时候,写动态查询,报了好几轮错误。
最开始我是使用String代号数据传过来再做判断,结果数据传的没错,控制台显示的查询参数也没有错误,无法得到正确的查询结果。
然后我就去Navicat上测试发现必须使用int类型的参数来查询,否则查不到正确数据
下图为第一个句子的执行结果,为传入的是String类型的查询参数,可以看到,查询结果只是取了前四条,并没用把cost限制在0到50之间。
然后我就试了下不加双引号(也就是int参数),可以正确得到结果(结果就是没用0~50w的二手房),以下为第二个句子的查询结果:
于是我又更改后端代码,把数据改为int类型
但进行Integer.parseInt(【String】)转换时会报错,因为传过来的string字符串可能是空的或者""(内部无空格),所以得先用!=做一个判断。(上图中已经完善此处)
其次 我在使用postman进行接口测试时又LambdaQueryWrapper的执行判断那里需要修改,测试了很多遍,后面还遇到了好几个坑,然后边测试边改改好了最后。
postman测试也没什么问题了。
后面前端改好发送请求的时候,又发现前端没有填写数据的字段我初始化为"",传来就不会被识别为空null,而是识别为两个双引号”“,导致我后端又报错,本来是想在后端加上不等于""和不等于null的双重判断,后来想了想直接把这个步骤放在了前端拼接字符串的那一步,否则请求地址会非常累赘和不好看。
解决这个之后这个功能就跑起来了,能够按照条件进行查询
今天除了把以上功能写完,还把后端的JWT需要的配置方法写好了,明天再大改一下前后端,预计把JWT身份验证什么的写好,如果还有时间就再写下vue的后台页面,上次写的很不顺利,有时间要集中精力把它先搭建好。