使用注解方式
记得查询时要加通配符来表示个数等信息!
参考博文,SQL模糊查询语句
SearchController.java
package cn.shop.controller;
import cn.shop.entity.Shoe;
import cn.shop.service.ProductService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
@RequestMapping(value ="search")
public class SearchController {
private Logger logger = LoggerFactory.getLogger(SearchController.class);
@Autowired
private ProductService productService;
@RequestMapping(value ="")
@ResponseBody
public List<Shoe> showSearch(@RequestParam(value ="key") String key ,
Model model){
logger.info("key:" + key);
List<Shoe> list = productService.searchShoes(key);
logger.info("查询结果个数:" + list.size());
return list;
}
}
ProductService.java
package cn.shop.service;import cn.shop.entity.Shoe;import cn.shop.repository.ProductRepository;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@ServicepublicclassProductService {@Autowiredprivate ProductRepository productRepository;public List<Shoe>searchShoes(String key){//记得加 % %return productRepository.findAllByNameLike("%" + key +"%");
}
}
ProductRepository.java
package cn.shop.repository;
import cn.shop.entity.Shoe;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.query.Param;
import java.util.List;publicinterfaceProductRepositoryextendsJpaRepository<Shoe,Integer>{publicList<Shoe> findAllByNameLike(String key);
}