我们在实际使用的时候,可能会存储很多的数据,如果某天用到的话,找起来又很麻烦,所以,模糊查询正好解决了这个问题。
数据访问层(DAO)
package com.example.demo.dao;
import java.util.List;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import com.example.demo.entity.Message;
public interface MessageDAO extends PagingAndSortingRepository<Message, Integer>,JpaSpecificationExecutor<Message> {
//模糊查询
public List<Message> findByNameLike(String name);
}
服务层(Service)
//模糊查询
public List<Message> findNameLike(String name) {
return messageDAO.findByNameLike("%"+name+"%");
}
控制器(Controller)
//模糊查询
@RequestMapping("findNameLike")
@ResponseBody
public List<Message> findNameLike(HttpServletRequest request){
//接收你要查询的值
String likeName=request.getParameter("name");
List<Message> list=new ArrayList<Message>();
list=messageService.findNameLike("%"+likeName+"%");
return list;
}
jQuery
//模糊查询
//当选中的input失去焦点时调用改方法,主要是keyup的作用
$("input[name='name']").keyup(function(){
var name = $("#name").val();
$.post("/message/findNameLike",{name:name},function(data){
//alert(name);
//alert(JSON.stringify(data));
//下面的是用append进行添加,所以这里先将原来的清空以下
$("#in").html("");
for(var i=0;i<data.length;i++){
$("#in").append("<li>"+data[i].name+"--"+data[i].number+"</li>");
}
});
});
HTML
<!-- 模糊查询 -->
<div class="small" >
姓名: <input type="text" name="name" id="name"><span id="text"></span><br /><br />
<span id="in"></span>
</div>
下图为效果:
后面的数字是我在jq输出时,顺便输出的手机号