基于SSM框架下的模糊查询

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>


效果图

模糊查询成功

需要源码的话,可以发评论告诉我哦。

猜你喜欢

转载自blog.csdn.net/liqz666/article/details/81481663
今日推荐