原标题: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_list.html页面

location.href即可跳转对应页面。同时将rname作为参数传递给后台。

③route_list.html页面代码

在②中跳转是携带了一个参数,自然是需要获取该参数,再将其增加到服务器请求参数中。

其中要将参数进行解码,因为浏览器会自动将在搜索框中输入的数据进行编码。

使用decodeURL()功能即可完成编码。

3后台接受该参数

在已有的业务逻辑基础上添加参数即可

只需要在web层中增加获取rname这个数据的代码。

同时在将其作为参数传递给service层,而service层也增加该参数去dao层查询。

其它代码都不用改变,只是增加了一个rname参数。

同样的道理,在dao层中也动态拼接sql查询语句。

总之可以先写出完整的sql语句,再动态拼接rname这个参数。

检查方式就可以通过debug来判断sql语句拼接的是否正确。

三、搜索框数据回填

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

而事实上都应该还会存在,那该怎么办呢?

就需要考虑到数据回填:

大致的一个思路是:

获取搜索框中的数据后,将其重新设定到对应的标签中。

其中值得注意的是:

参数要解码,以及要绑定页面加载事件。

最后

谢谢你的观看。

如果可以的话,麻烦帮忙点个赞,谢谢你。返回搜狐,查看更多

责任编辑:

java 搜索业务怎么写_Java项目实战第11天:搜索功能的实现相关推荐

  1. java窗体添加背景图片_Java项目实战之实战之天天酷跑(四):游戏主界面

    接上文,本文将实现游戏主界面,功能如下: 移动的背景图片.动态的玩家.玩家的移动功能.五种障碍物持续出现.玩家和障碍物的碰撞.暂停.继续功能. 首先,看一下整体效果: 动图实在太大,几秒钟的 Gif ...

  2. java 电商 插件 开发_JAVA项目实战开发电商项目案例(六与七)商品分类与商品模块管理开发...

    购物网站中,商品管理板块也是重要的一个版块,下面我会从后台管理系统和前台管理页面去讲述购物网站商品模块功能的开发. 1演示效果 1.1前台演示地址演示地址 1.2后台演示地址演示地址 2商品分类功能 ...

  3. 【源码及课件分享】Java实战项目之进销存管理系统_Java项目开发_Java项目实战

    还没有搞定毕设的小伙伴一定要看鸭~ Java实战项目--进销存管理系统![源码及课件分享]Java实战项目之进销存管理系统_Java项目开发_Java项目实战_Java毕业设计https://www. ...

  4. 【源码及课件分享】Java实战项目之酒店客房管理系统_Java项目开发_Java项目实战

    Java实战项目又双叒叕来咯~小伙伴们请查收~酒店客房管理系统![源码及课件分享]Java实战项目之酒店客房管理系统_Java项目开发_Java项目实战_Java毕业设计https://www.bil ...

  5. 【源码+教程】Java桌球游戏_Java初级项目_Java练手项目_Java项目实战_Java游戏开发

    今天分享的Java开源游戏项目是桌球游戏,初学者也可以用来练习喔~课程详细讲解了一个桌球游戏的编写思路和流程,即使你刚学Java没多久,也可以跟随该教程视频完成属于你自己的桌球游戏!同时,还可以加深和 ...

  6. 【课题总结】OpenCV 抠图项目实战(11)算法实验平台

    Python 小白的课题报告-OpenCV 抠图项目实战(11)抠图算法实验平台 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能 ...

  7. java 搜索框快速查询_Java项目搜索功能的实现

    今天是刘小爱自学Java的第110天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 事先说明:关于今天的搜索功能实现. 并没有使用到倒排索引这样的主流搜索技术,就一个普通的模糊查询. 在此之前 ...

  8. java开发展望怎么写_Java开发趋势:2019年展望

    java开发展望怎么写 在这篇文章中,我们将发表一篇有关2019年Java开发趋势的综合文章.您是否知道Java自上世纪问世以来,现在已在100亿个设备上运行 ? 它是数十年来最受欢迎的编码语言,但是 ...

  9. java事件处理过程分布写_Java 9中的进程处理

    java事件处理过程分布写 一直以来,用Java管理操作系统进程都是一项艰巨的任务. 这样做的原因是可用的工具和API较差. 老实说,这并非没有道理:Java并非旨在达到目的. 如果要管理OS进程,则 ...

最新文章

  1. docker安装wget_Docker: docker pull, wget, curl, git clone 等如何更快?
  2. windows命令行安装python3_Python3---windows安装与运行
  3. SAP Marketing和SAP Marketing Cloud的区别
  4. [deviceone开发]-do_SlideListView的简单示例
  5. LeetCode动态规划 斐波那契数
  6. Struts2显示double价格格式0.00
  7. python 字典排序 lambda_Python使用lambda表达式对字典排序操作示例
  8. /usr/bin/ld: skipping incompatible -转
  9. 怎么实现单点登录?面试必问!
  10. 获取 SQL Server 版本号
  11. 【微信扫码登录】以及【微信扫码支付】解决方案
  12. 【饭谈】领导叫你搞个自动化平台,你要怎么入手?不会上来就开始新建项目写代码吧?
  13. 机器人阿郎_机械人阿郎
  14. 牛客网练习—《网络基础》DAY2
  15. 解决w950播放RM视频的问题[转]
  16. PCA9685:I2C转16路PWM,助力你的系统
  17. Git教程 | (9) 自定义Git和使用SourceTree
  18. 为什么感觉期货交易越做越难?
  19. The Design of Everyday Things 读书笔记
  20. Java如何把一个CSV文件拆分成指定个CSV文件【带源码,完美运行带截图】

热门文章

  1. Javascript 未结束的字符串常量
  2. solr学习二(ExtractingRequestHandler)
  3. ubuntu gitweb配置
  4. 关于web.xml的格式
  5. nyoj983 首尾相连数组的最大子数组和
  6. 理解 Linux 的硬链接与软链接
  7. 关于Reapeter的总结
  8. Atlas Samples Suse Linux 10.1
  9. MSN8.0?!O My God,it's so perfect!
  10. centos7 yum安装 c c++ gcc gcc-c++