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

核心提示今天是刘小爱自学Java的第110天。感谢你的观看,谢谢你。话不多说,开始今天的学习:事先说明:关于今天的搜索功能实现。并没有使用到倒排索引这样的主流搜索技术,就一个普通的模糊查询。在此之前,先学一个小的知识点,sql语句动态拼接。一、sq

今天是刘自学Java的第110天。

谢谢观看,谢谢。

事不宜迟,开始今天的学习吧:

提前说明:关于今日搜索功能的实现。

没有使用倒排索引等主流搜索技术,只是普通的模糊查询。

在此之前,学习一个小知识点,sql语句的动态拼接。

1.sql语句的动态拼接

当我们编写sql语句时,我们通常预编译查询并使用通配符问号“?”

但是,有时参数并不存在。比如这次查询前端发了三个参数,下次只发了两个参数。

面对这个问题,我们该怎么办?

你需要使用sql语句的动态拼接。代码编写如下:

①①SQL语句中的参数cid是不确定的,有时有,有时可能没有。

②StringBuilder的使用

首先,在StringBuilder中存储sql语句的确定部分,然后创建一个集合来存储参数。

③对cid做出判断。

如果cid不是空并且存在,请在sql语句中拼接"和cid = ",并将cid存储在参数集中。

④拼接cid背后的其他参数

在sql语句中拼接“limit”,然后将另外两个固定参数存储到集合中。

注意:不要忘记sql拼接过程中的空网格。简而言之,确保拼接的sql与①中的相同,并且可以通过debug查看。

⑤查询数据

将动态存储sql语句的StringBuilder转换为字符串,将存储的参数集转换为数组,然后使用jdbcTemp进行查询。

二、前后台代码编写

1业务分析

我们想找到搜索框所在的静态页面,如下所示:

要解决两个问题:

①我们想将一个点击事件绑定到搜索中。点击后,我们将跳转到route_list页面,显示找到的相应数据。

的绑定函数是queryByRname。

②我们希望获得搜索框中输入的数据。

在这里,您可以通过层次选择器$选择与搜索框相对应的标签

2前端代码实现

定义函数queryByRname

①获取搜索框中的内容。

使用层次选择器,通过调用jQuery的val方法,也就是这里的搜索框,就可以得到相应标签中的数据。

②跳转到route_list.html页面

Location.href可以跳转到相应的页面。同时,rname作为参数传递给后台。

③route_list.html页面代码

②跳转带有一个参数。自然,需要获取参数并将其添加到服务器请求参数中。

应该对参数进行解码,因为浏览器会自动对搜索框中输入的数据进行编码。

使用decodeURL函数可以完成编码。

3后台接受此参数。

在现有业务逻辑的基础上添加参数。

您只需要添加代码来获取web层中的rname数据。

同时作为参数传递给服务层,服务层也添加这个参数来查询dao层。

其他代码不需要修改,只增加一个rname参数。

类似地,sql查询语句也在dao层中动态拼接。

简而言之,可以先写一个完整的sql语句,然后动态拼接rname参数。

检查使用debug判断sql语句是否正确拼接的方式。

三、搜索框数据回填

我们在搜索框中输入信息后,点击搜索,搜索框的内容就会消失。

其实他们应该还是存在的,那我们该怎么办?

您需要考虑数据回填:

一个总的想法是:

获得搜索框中的数据后,将其重置到相应的选项卡。

值得注意的是:

要解码的参数和要绑定的页面加载事件。

最后

感谢您的观看。

如果可以,请给我一个赞。谢谢你。

 
友情链接
鄂ICP备19019357号-22