模糊查询:

——根据传入的name,password属性列进行查询

——需要在CustomerDAO接口中定义一个getForListWithCriteriaCustomer(CriteriaCustomer cc).

其中CriteriaCustomer用于封装查询条件:name,address,phone。

因为查询条件很多时候和domain类并不相同,所以要做成一个单独的类

——拼SQL:

  • SQL:"SELECT ID,NAME,PASSWORD FROM CUSTOMER WHERE"+"NAME LIKE ? AND PASSWORD LIKE ? ";
  • 为了正确的填充占位符时,重写了CriteriaCustomer的getter:

——修改Servlet:获取请求参数;把请求参数封装为CriteriaCustomer对象,再调用getForListWithCriteriaCustomer(CriteriaCustomer cc)方法

步骤:

1.首先在CustomerDAO接口中添加该方法。

public List<Customer> getListWithCirteriaCustomer(CriteriaCustomer cc);

  

2.创建一个CriteriaCustomer类,对成员变量进行封装

package com.mvcapp.entity;public class CriteriaCustomer {private String name;private String password;public CriteriaCustomer(String name, String password) {this.name = name;this.password = password;}public CriteriaCustomer() {}public String getName() {if (name == null){name="%%";}else{name="%"+ name +"%";}return name;}@Overridepublic String toString() {return "CriteriaCustomer{" +"name='" + name + '\'' +", password='" + password + '\'' +'}';}public void setName(String name) {this.name = name;}public String getPassword() {if (password == null){password="%%";}else{password="%"+ password +"%";}return password;}public void setPassword(String password) {this.password = password;}
}

  

3.在CustomerDAOimpl实现类实现该方法

 public List<Customer> getListWithCirteriaCustomer(CriteriaCustomer cc) {String sql = "SELECT ID,NAME,PASSWORD FROM CUSTOMER WHERE" + " NAME LIKE ? AND PASSWORD LIKE ?";return getForList(sql,cc.getName(),cc.getPassword());//调用DAO层中方法}

  

4.可以对这个实现方法进行一个测试

 @Testpublic void testGetListWithCriteriaCustomer(){CriteriaCustomer criteriaCustomer = new CriteriaCustomer("Y",null);List<Customer> customers = customerDAO.getListWithCirteriaCustomer(criteriaCustomer);System.out.println(customers);}

  

5.修改Servlet,修改query方法

 private void query(HttpServletRequest req,HttpServletResponse resp){String name = req.getParameter("name");String password = req.getParameter("password");CriteriaCustomer criteriaCustomer = new CriteriaCustomer(name,password);List<Customer> list =  customerDAO.getListWithCirteriaCustomer(criteriaCustomer);req.setAttribute("list",list);try {req.getRequestDispatcher("/query.jsp").forward(req,resp);} catch (ServletException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}

  

效果:

转载于:https://www.cnblogs.com/yangHS/p/11137658.html

MVC案例——模糊查询相关推荐

  1. Database之SQLSever:SQL命令实现四则运算、desc降序、like模糊查询、distinct去重、MAX/MIN/SUM/AVG/COUNT/GROUP/having等案例之详细攻略

    Database之SQLSever:SQL命令实现四则运算.desc降序.like模糊查询.distinct去重.MAX/MIN/SUM/AVG/COUNT/GROUP/having等案例之详细攻略 ...

  2. MVC分层+JDBC+数据库+Servlet实现JSP文件上传和显示+模糊查询+分页

    本文章主要介绍了一个简单的实例:用简单的MVC分层思想,使用数据库在web界面进行增删改查,以及上传,模糊查询+分页的实现. 1.util层(数据库连接管理) :连接数据库需要导包:mysql-con ...

  3. java程序设计与j2ee中间件技术/软件开发技术(III)-大作业-采用MVC模式实现商品信息的查询显示(可以模糊查询)、增加和删除功能,商品表自拟,实现简单菜单操作和分页显示

    目录 1.题目说明 2.实验设计 2.1 表设计 2.2 工程结构 3.运行界面截图与说明 4.小结 附录:源代码 src/main/java src/main/java/bean Goods.jav ...

  4. 3.QT数据库综合案例,模糊查询等操作

     1 新建一个项目: Database01.pro SOURCES += \ main.cpp \ Contact.cpp QT += gui widgets sql CONFIG += C++1 ...

  5. SQL模糊查询特殊符号应用及详细案例说明

    SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下:  1.LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden).  2.LIKE'%inger' 将 ...

  6. MVC案例-架构分析

    MVC案例 --没有业务层,直接由Servlet调用DAO,所以也没有事务操作.所以可以在DAO中直接获取Connection对象 --采取MVC设计模式 --使用到的技术 MVC设计模式:JSP,S ...

  7. php拼音模糊查询,PHP模糊查询技术实例分析【附源码下载】

    本文实例讲述了PHP模糊查询技术.分享给大家供大家参考,具体如下: 简介 从本质上揭密PHP模糊查询技术 功能 根据输入的关键字查找相关用户 PHP用户查询器案例分析 课程目标 掌握PHP模糊技术的应 ...

  8. c3p0 参数 模糊查询_mybatis之动态sql,模糊查询,结果集处理,mybatis分页及特殊字符处理...

    目标及项目目录结构 目标 1.mybatis动态sql 2.模糊查询 3.查询返回结果集的处理 4.分页查询 5.特殊字符处理 项目的目录结构 1.mybatis动态sql If.trim.forea ...

  9. 批量模糊查询_Django之ORM表高级操作、增删改查、F/Q查询等

    目录 一.如何开启自己的测试脚本? 二.对表数据的添加.更新.删除1.create()变态操作之批量插入数据2.update()3.delete()4.如何查看QuerySet对象执行的sql语句?5 ...

最新文章

  1. java arcengine_在Java程序中调用ArcEngine
  2. sentinel安装
  3. 程序员4月书讯:Angular来了!
  4. 交换机配置——VTP管理交换机的VLAN配置
  5. OutLook2016修改注册表迁移.ost文件数据
  6. CSS之Screen视图属性
  7. css如何设置文本垂直居中显示,css中怎么设置文本居中?css文本垂直居中的设置方法...
  8. 16款有助于提升工作效率的工具
  9. 狂人日记学习 之七 三列浮动中间列宽度自适应
  10. Linux高手必看的10本经典书籍
  11. Spotfire 表达式中的属性
  12. 华御上网行为管理FAQ
  13. 链接、图像、列表、计数器
  14. php3d饼状图的教学,php使用Jpgraph创建3D饼形图效果示例
  15. 微信小程序和微信H5有什么区别?
  16. STM32F103C8T6+ESP-01S+MQTT服务器实现数据上传和接收(一)
  17. 常用药 学着照顾自己和身边的人
  18. 异常 | ARM _data_abort 异常处理流程
  19. thinkajax入门------验证ThinkAjax.send 、ajaxReturn
  20. cad二次开发c#学习记录4——导出图纸标注的尺寸

热门文章

  1. 实例详细讲解ASP生成静态页面方法
  2. ASP:HTML在线编辑器的调用方法和使用方法详解
  3. SpringBoot项目依赖本地jar包
  4. 看看阿里的考核尺度, 阿里人工资高是有原因的
  5. Cookie或将被替换!Chrome工程师提议新型HTTP状态管理协议
  6. 语言相关系数显著性_ggplot2 绘制带星号和 Pvalue 值的相关系数热图
  7. php ftp 大文件,php – 将文件复制到服务器与FTP之间的文件大小差异
  8. mysql 对象名无效_如何解决“SQL对象名无效”的问题
  9. 国内数据中心制冷系统设计与发展
  10. “双碳”目标下新型数据中心的方向