MVC案例——模糊查询
模糊查詢:
——根據(jù)傳入的name,password屬性列進(jìn)行查詢
——需要在CustomerDAO接口中定義一個(gè)getForListWithCriteriaCustomer(CriteriaCustomer cc).
其中CriteriaCustomer用于封裝查詢條件:name,address,phone。
因?yàn)椴樵儣l件很多時(shí)候和domain類并不相同,所以要做成一個(gè)單獨(dú)的類
——拼SQL:
- SQL:"SELECT ID,NAME,PASSWORD FROM CUSTOMER WHERE"+"NAME LIKE ? AND PASSWORD LIKE ? ";
- 為了正確的填充占位符時(shí),重寫了CriteriaCustomer的getter:?
——修改Servlet:獲取請(qǐng)求參數(shù);把請(qǐng)求參數(shù)封裝為CriteriaCustomer對(duì)象,再調(diào)用getForListWithCriteriaCustomer(CriteriaCustomer cc)方法
?
步驟:
1.首先在CustomerDAO接口中添加該方法。
public List<Customer> getListWithCirteriaCustomer(CriteriaCustomer cc);
2.創(chuàng)建一個(gè)CriteriaCustomer類,對(duì)成員變量進(jìn)行封裝
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實(shí)現(xiàn)類實(shí)現(xiàn)該方法
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());//調(diào)用DAO層中方法}
4.可以對(duì)這個(gè)實(shí)現(xiàn)方法進(jìn)行一個(gè)測(cè)試
@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();}}
效果:
轉(zhuǎn)載于:https://www.cnblogs.com/yangHS/p/11137658.html
總結(jié)
以上是生活随笔為你收集整理的MVC案例——模糊查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux】一步一步学Linux——U
- 下一篇: s3c2440移植MQTT