1、数据表设计
2、数据表里增添四个字段:
3创建接口
List<Qualification> findAll();//查询所有,把Qualification的所有属性封装到List里
List<Qualification> findByName(String name);//根据name字段里的任意一个值进行模糊查询整条记录
4、在mybatis 里编写sql语句
select id="findByName" parameterType="String" resultMap="BaseResultMap">
select * from qualification where name like "%"#{name}"%" <!-- or description like #{description} -->//注释的表示也可以再添加一个字段,通过两个字段进行模糊查询。
<!-- <where>
<if test="name!=null||name!=''">
and name like concat(concat('%',#{name}),'%')
</if>
</where> -->
</select>
5、业务逻辑层代码实现
package com.lysoc.jmi.tracing.service.user;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.lysoc.jmi.tracing.mapper.QualificationMapper;
import com.lysoc.jmi.tracing.model.Qualification;
@Service
public class QuaService {
@Autowired//注入mapper,操做数据库的,相当于dao层,
QualificationMapper qualificationMapper;
public List<Qualification> findByName(String name) {
return qualificationMapper.findByName(name) ;//返回服务层到控制层
}
}
6、编写Qualification类的实体类
public class Qualification {
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getClassification() {
return classification;
}
public void setClassification(String classification) {
this.classification = classification;
}
private Integer id;
private String name;
private String description;
private String classification;
}
7、首先要查询出所有的记录
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.lysoc.jmi.tracing.mapper.QualificationMapper;
import com.lysoc.jmi.tracing.model.Qualification;
import com.lysoc.jmi.tracing.service.user.QuaService;
@Controller
public class QualificationController {
@Autowired
private QualificationMapper qualificationMapper;//加入dao层和服务层都要注入一个@Autowired,否则会报空指针异常。
@Autowired
private QuaService quaService;
@RequestMapping("/findAll")
public ModelAndView findAll(HttpServletRequest request) {
List<Qualification> list=qualificationMapper.findAll();//查询所有的记录
for(Qualification q:list) {//进行遍历
request.getSession().setAttribute("q", list);//封装到request对象里。
}
return new ModelAndView("qualification_main");//返回视图,
}
@RequestMapping("/findByName")//模糊查询
public String findByName (HttpServletRequest request,Map<String,Object> map) {
String name=request.getParameter("name");
System.out.println(name);
System.out.println(name);
List<Qualification> list=quaService.findByName(name);
System.out.println("成功");
map.put("q", list);
return ("qualification_main");//返回到这个jsp页面
}
}
8、在qualification.jsp里进行打印显示。
<body>
<form action="${path}/findByName" method="post">
<input type="text" name="name">
<input type="submit" value="查询">
</form>//一个表单查询
<table id="form">
<tr><th><th>序号</th><th>类别</th><th>名称</th><th>描述</th><th>操作</th></tr>
<c:forEach items="${q}" var="qua">
<tr>
<td><input type="checkbox"/></td>
<td>${qua.id}</td>
<td>${qua.classification}</td>
<td>${qua.name} </td>
<td>${qua.description}</td>
<td>
<a href="updateFirmTo?id=${qua.id}"><button id="btn2">更改</button></a>
<a href="deleteFirm?id=${qua.id}"><button id="btn2">删除</button></a>
</td>
</tr>
</c:forEach>
</table>
</body>
效果图
模糊查询成功
需要源码的话,可以发评论告诉我哦。