一、实现模糊查询功能
1、在UserBar.html中添加一个搜索框和搜索按钮
<form action="selectGoods" th:object="${goodsForm}" method="post">
<input type="text" name="commodityName"/>
<input type="submit" value="搜索"/>
2、在GoodsController中写入关于搜索功能的后台代码
@RequestMapping(value = "selectGoods", method = RequestMethod.POST)
public String selectGoods(Model model,HttpSession session,GoodsForm goodsForm,Device device){
log.info("搜索相关商品");
List<GoodsForm> list=goodsService.searchGoodsListrelative(goodsForm);
model.addAttribute("list",list);
UVO uvo = (UVO)session.getAttribute("UVO");
if (uvo == null) {
uvo = new UVO();
session.setAttribute("UVO", uvo);
}
CartForm cartForm = new CartForm();
cartForm.setGuestId(uvo.getGuestId());
model.addAttribute("cartList", cartService.searchCartList(cartForm));
if(device.isNormal()) {
return "shop/index";
} else {
return "mobile/index";
}
}//加入条件判断,判断是手机端访问还是PC端访问
3、在GoodsService中写入关键代码
public List<GoodsForm> searchGoodsListrelative(GoodsForm frm) {
List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectGoodsListrelative", frm);
return result;
}
4、在GoodsSqlMap数据库中
<select id="selectGoodsListrelative"
parameterClass="cn.agriculture.web.form.GoodsForm"
resultClass="cn.agriculture.web.form.GoodsForm">
SELECT commodity.commodity_id as commodityId,
commodity.type as type,
supplier.supplier_name as supplierName,
brand.brand_name as brandName,
commodity.commodity_name as commodityName,
commodity.weight as weight,
commodity.is_gift as isGift,
commodity.specifications as specifications,
commodity.unit as unit,
commodity.benchmark_price as benchmarkPrice,
commodity.guide_price as guidePrice,
commodity.retail_price as retailPrice,
commodity.competition_level as competitionLevel,
commodity.note as note,
commodity.update_time as updateTime,
commodity.update_user as updateUser,
commodity.picture_id as pictureId,
stock.stock as stock
FROM commodity, supplier, brand, stock
WHERE commodity.commodity_id = stock.commodity_id
AND commodity.supplier_id = supplier.supplier_id
AND commodity.brand_id = brand.brand_id
AND commodity.commodity_name LIKE '%$commodityName$%'
//数据库中还可以用commodity.commodity_name LIKE concat('%',#commodityName#,'%')
</select>
两个表相连的SQL表示:
select产品.Name,明细.Name
from产品,明细
where产品.ID=明细.ID