Java项目实战第11天:搜索功能的实现

Java项目实战第11天:搜索功能的实现

2023年7月9日发(作者:)

Java项⽬实战第11天:搜索功能的实现⽬录今天是刘⼩爱⾃学Java的第110天。感谢你的观看,谢谢你。话不多说,开始今天的学习:事先说明:关于今天的搜索功能实现。并没有使⽤到倒排索引这样的主流搜索技术,就⼀个普通的模糊查询。在此之前,先学⼀个⼩的知识点,sql语句动态拼接。⼀、sql语句动态拼接我们编写sql语句,⼀般都是通过预编译查询,使⽤问号这个通配符”?“但是有的时候会存在某个参数不存在的情况,⽐如说这⼀次查询前端传来了3个参数,下⼀次却只传了2个参数。⾯对这个问题,那该怎么办呢?就需要使⽤到sql语句的动态拼接了,代码编写如下:①sql语句中的cid这个参数是不确定的,有时有,有时可能没有。②StringBuilder的使⽤先将sql语句中确定的部分存放到StringBuilder中,再创建⼀个集合存放参数。③对cid做出判断如果cid不为空且存在,就在sql语句中拼接“ and cid = ?”,同时将cid存⼊参数集合中。④拼接cid后⾯其它的参数在sql语句中拼接“ limit ?,?”,然后将另外两个固定参数存⼊集合。注意:sql拼接过程中空格不要忘记了,总之要保证拼接后的sql要和①中的⼀样,通过debug可以查看。⑤查询数据将动态存放sql语句的StringBuilder转换成字符串,将存放参数的集合转换成数组,再使⽤jdbcTemp查询。⼆、前后台代码编写1业务分析我们要找到搜索框所在的静态页⾯,如下图:要解决两个问题:①是我们要给搜索绑定⼀个点击事件,点击之后就会跳转到route_list页⾯,展⽰查询到的对应数据。绑定的函数为queryByRname()②我们要获取搜索框中输⼊的数据。这⾥就可以通过层级选择器$(“.search input”)选中搜索框对应的标签。2前端代码实现定义函数queryByRname()①获取搜索框中的内容使⽤层级选择器,调⽤jQuery的val()⽅法可以获取对应标签中的数据,这⾥也就是搜索框。②跳转route_页⾯即可跳转对应页⾯。同时将rname作为参数传递给后台。③route_页⾯代码在②中跳转是携带了⼀个参数,⾃然是需要获取该参数,再将其增加到服务器请求参数中。其中要将参数进⾏解码,因为浏览器会⾃动将在搜索框中输⼊的数据进⾏编码。使⽤decodeURL()功能即可完成编码。3后台接受该参数在已有的业务逻辑基础上添加参数即可只需要在web层中增加获取rname这个数据的代码。同时在将其作为参数传递给service层,⽽service层也增加该参数去dao层查询。其它代码都不⽤改变,只是增加了⼀个rname参数。同样的道理,在dao层中也动态拼接sql查询语句。总之可以先写出完整的sql语句,再动态拼接rname这个参数。检查⽅式就可以通过debug来判断sql语句拼接的是否正确。三、搜索框数据回填我们在搜索框中输⼊信息之后,点击搜索,搜索框的内容会消失。⽽事实上都应该还会存在,那该怎么办呢?就需要考虑到数据回填:⼤致的⼀个思路是:获取搜索框中的数据后,将其重新设定到对应的标签中。其中值得注意的是:参数要解码,以及要绑定页⾯加载事件。最后谢谢你的观看。如果可以的话,⿇烦帮忙点个赞,谢谢你。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688894867a181812.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信