1. 程式人生 > >SSM框架下一個簡單的模糊查詢(超級詳細)

SSM框架下一個簡單的模糊查詢(超級詳細)

引言:模糊查詢作為後臺常用的一種查詢方式,我們可以根據相應的 關鍵字對其檢索,從而獲得所需要的記錄,本次模糊查詢我們通過名字的任何一個欄位進行匹配查詢。

如果想學習java後臺開發或者前端開發,需要各種資料,以及遇到開發中的問題,想看原始碼,可以加我的群:java愛好者學習群:893474028,我lqz帶你們共同學習。

1、資料表設計

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `password` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `role` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `createtime` date NOT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 41 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

2、資料表裡增添幾條記錄:

INSERT INTO `user` VALUES (11, '李慶照', '12344', '學生', '2018-09-11');
INSERT INTO `user` VALUES (12, 'al', '121221', '學生', '2018-08-11');
INSERT INTO `user` VALUES (13, '韓小虎', '12344', '學生', '2018-09-10');
INSERT INTO `user` VALUES (14, '狄雲輝', '12345', '學生', '2018-09-01');
INSERT INTO `user` VALUES (15, '王鵬', '124434', '學生', '2018-09-09');
INSERT INTO `user` VALUES (16, '魏鵬', '12344', '學生', '2018-09-14');
INSERT INTO `user` VALUES (17, '呂老師', '123456', '老師', '2018-09-10');
INSERT INTO `user` VALUES (18, '李慶照', '123456', '管理員', '2018-09-09');
INSERT INTO `user` VALUES (19, '呂老師', '12344', '學生', '2018-09-11');
INSERT INTO `user` VALUES (21, '甘志偉', '12344', '學生', '2018-09-11');
INSERT INTO `user` VALUES (32, '夏平平', '123456', '學生', '2018-09-11');
INSERT INTO `user` VALUES (38, '', '', '學生', '2018-09-11');
INSERT INTO `user` VALUES (39, '', '', '學生', '2018-09-11');
INSERT INTO `user` VALUES (40, 'admin', '123456', '學生', '2018-09-11');

SET FOREIGN_KEY_CHECKS = 1;

3、建立介面

  List<User> findByName(@Param("username")String username);//根據username欄位裡的任意一個值進行模糊查詢整條記錄

4在mybatis 裡編寫sql語句

 <select id="findByName" resultType="com.lysoc.jmi.teaching.model.User"
        parameterType="com.lysoc.jmi.teaching.model.User">
        SELECT * FROM user
        <where>
            <if test="username != null and username != ''">
                AND username LIKE CONCAT(CONCAT('%',#{username},'%'))
            </if>
        </where>
        ORDER BY id
    </select>

5、業務邏輯層程式碼實現

@Service
@Transactional
public class UserService {
    @Autowired
    UserMapper userMapper;//注入mapper檔案
     //模糊根據登陸賬號查詢
     public List<User> findByName(String username){
         return userMapper.findByName(username);
     }

6、編寫User類的實體類

package com.lysoc.jmi.teaching.model;

import java.util.Date;

public class User {
    private Integer id;

    private String username;

    private String password;

    private String role;

    private Date createtime;
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username == null ? null : username.trim();
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password == null ? null : password.trim();
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role == null ? null : role.trim();
    }

    public Date getCreatetime() {
        return createtime;
    }

    public void setCreatetime(Date createtime) {
        this.createtime = createtime;
    }
}

7、首先要查詢出所有的記錄

@Controller
public class UserController {
        @Autowired
        private UserService userService;
        
     @RequestMapping("/findByName")
    public String findByName(
            @RequestParam(defaultValue="1") Integer currentPage,
            HttpServletRequest request,Map<String,Object> map) {
        String username=request.getParameter("search");
        System.out.println(username);
        PageHelper.startPage(currentPage,8);
        List<User> list=userService.findByName(username);
        PageInfo<User> pageInfo=new PageInfo<User>(list,8);
        map.put("pageInfo", pageInfo);
        return "userinfo";
    }

}

8、在userinfo.jsp裡進行列印顯示。

<body>

<!-- 搜尋/批量刪除 -->
<div class="tools">
    <ul class="toolbar">
        <li><a href="senduserTo"><button type="button" class="layui-btn layui-btn-sm" id="getAll"><i class="layui-icon">&#xe608;</i> 新增</button></a></li>
        <li ><a><button type="button" class="layui-btn layui-btn-sm" onclick="return deleteAll()" ><i class="layui-icon">&#xe640;</i>批量刪除</button></a></li>
    </ul>
    <ul class="searchform">
        
        <li> <form action="${path}/findByName" method="post">
<input type="text" name="search" placeholder="根據登陸賬號查詢" style="    border: 1px solid #E6E6E6;;height:28px;width:120px;">
<button class="layui-btn layui-btn-sm"><i class="layui-icon">&#xe615;</i> 搜尋</button>
</form></li>
        <%--    <li><a href="${path}/findByName"><button class="layui-btn layui-btn-small"><i class="layui-icon">&#xe615;</i> 搜尋</button></a></li>
        <li><fr<input name="search" type="text" class="scinput" placeholder="請根據登入賬號查詢"  /></li> --%>
    </ul>
        
</div>

<table class="tablelist">
    <tr><th><input type="checkbox" name="selectall" id="selectall" onclick="checkAll()" id="selectall"/></th>
    <th>登陸賬號</th><th>登陸密碼</th><th>角色</th><th>建立日期</th><th>操作</th>
    <c:forEach items="${pageInfo.list}" var="user">
    <tr>
        <td><input type="checkbox" name="id" value="${user.id}"/></td>
        <td>${user.username}</td>
        <td>${user.password}</td>
        <td>${user.role}  </td>
    <%--     <td>${user.createtime}</td> --%>
        <td><fmt:formatDate value="${user.createtime}" pattern="yyyy年-MM月-dd日" /></td>
        <td><a href="updateUserTo?id=${user.id}"><button class="layui-btn-mini layui-btn">更改</button></a>
        <a href="deleteById?id=${user.id}" class="tablelink"><button class="layui-btn-danger layui-btn-mini layui-btn">刪除</button></a></td>    
    </tr>
    </c:forEach>
    
</table>


    <!-- 顯示分頁資訊 -->
     <div class="clear"></div>
      <div class="pagin">
 <div class="message">共<i class="blue">${pageInfo.total }</i>條記錄,當前顯示第&nbsp;<i class="blue">${pageInfo.pageNum }&nbsp;</i>頁
 
 總<i class="
 blue">${pageInfo.pages }</i>頁
 </div>
 <ul class="paginList">
       <li class="paginItem"><a href="${pageContext.request.contextPath}/UserPage?currentPage=1">首頁</a></li>
                    <c:if test="${pageInfo.hasPreviousPage }">
                        <li  class="paginItem"><a href="${pageContext.request.contextPath}/UserPage?currentPage=${pageInfo.pageNum-1}"
                            > <span>&laquo;</span>
                        </a></li>
                    </c:if>
       <c:forEach items="${pageInfo.navigatepageNums }" var="page_Num">
                        <c:if test="${page_Num == pageInfo.pageNum }">
                            <li class="paginItem"><a href="#">${page_Num }</a></li>
                        </c:if>
                        <c:if test="${page_Num != pageInfo.pageNum }">
                            <li class="paginItem"><a href="${pageContext.request.contextPath}/UserPage?currentPage=${page_Num }">${page_Num }</a></li>
                        </c:if>

                    </c:forEach>
        <c:if test="${pageInfo.hasNextPage }">
        <li class="paginItem"><a href="${pageContext.request.contextPath}/UserPage?currentPage=${pageInfo.pageNum+1 }"> <span>&raquo;</span></a></li>
        </c:if>
        <li class="paginItem"><a href="${pageContext.request.contextPath}/UserPage?currentPage=${pageInfo.pages}">末頁</a></li>
        </ul>
  </div>
  <body>

9、效果圖

根據名字的任何一個欄位進行查詢 ,模糊查詢成功。

需要原始碼的話,可以發評論告訴我哦。

相關推薦

SSM框架一個簡單模糊查詢超級詳細)

引言:模糊查詢作為後臺常用的一種查詢方式,我們可以根據相應的 關鍵字對其檢索,從而獲得所需要的記錄,本次模糊查詢我們通過名字的任何一個欄位進行匹配查詢。 如果想學習java後臺開發或者前端開發,需要各種資料,以及遇到開發中的問題,想看原始碼,可以加我的群:java愛好者學習

SSM框架分頁的實現封裝page.java和List<?>)

添加 interface jsp頁面 har show 初始化 ring array dex 之前寫過一篇博客 java分頁的實現(後臺工具類和前臺jsp頁面),介紹了分頁的原理。 今天整合了Spring和SpringMVC和MyBatis,做了增刪改查和分頁,之前的邏輯

SSM框架的分散式服務方案基於Dubbo+Zookeeper)

原始碼https://github.com/wosyingjun/beauty_ssm_dubbo.git ###Dubbo服務的簡單應用及部署可以參見:DubboxDemo Maven(模組化構建) Spring(IOC DI AOP 宣告式事務處理) SpringMVC

WEBAPP開發MUI框架一個簡單的JS模仿redis的資料儲存外掛

開發環境:HBuder工具 + mui框架 公司開發APP一直使用的webApp的方式進行,這樣既可以不用額外招聘安卓和ios開發外,還可以不用頭疼各種解析度相容的問題。 之前有個APP有個需求是需要將某些使用者資料儲存到手機,並且不能被使用者主動刪除的那種,

關於SSM框架一個簡單Demo

專案是使用maven建立的,所以不懂maven的請先了解學習一下maven的基礎知識,程式設計工具選擇使用的是IDEA。 首先,當然是SSM所需要的jar包,如下: <properties> <spring-version>4.3.1

SSM框架分頁的實現封裝page.java和List)

1 <%@page import="com.bwlu.common.Page"%> 2 <%@ page language="java" contentType="text/html; charset=UTF-8" 3 pageEncoding="UTF-8"%>

java初學者Win 10eclipse的安裝教程超級詳細

安裝的前準備 首先檢視電腦的位數 方法: 1.同時按Win鍵+R鍵,在開啟的執行視窗中輸入“dxdiag”,並確定。(Win鍵就是鍵盤上顯示WINDOWS標誌的按鍵) 可以看到系統是64位的,等會要按照位數下載安裝適合自己系統的vs 下載安裝

用Django框架開發一個簡單的企業網站四)

現在通過後臺可以新建文章分類,並且編輯儲存文章了;由於Django預設的大容量文字欄位是通過一個textarea作為輸入方式,所以我們還需要引入一個富文字編輯器,這裡我推薦KindEditor(http://kindeditor.net/demo.php),配置簡單,功能也齊全。 將下載好的

用Django框架開發一個簡單的企業網站二)

現在已經搭建好了網站的基本框架,繼續完善後臺功能,既然要寫後臺,自然要準備好資料庫。 資料庫我選擇熟悉的mysql,用的navicat視覺化管理工具,這裡我建立了一個my_web的資料庫;建立好資料庫後在專案目錄下的settings.py檔案內配置資料庫連線資訊: DATABASE

用Django框架開發一個簡單的企業網站一)

Python有許多不同的 Web 框架,Django是重量級選手中最有代表性的一位,許多成功的網站和APP都基於Django。 既然如此,那麼…… 老規矩,先安裝Django框架,我的Django版本: 安裝完成後在想儲存專案的目錄下執行命令,新建一個專案: djan

用Django框架開發一個簡單的企業網站三)

接著之前的專案繼續深入開發,後臺和資料庫已經搞定,現在可以寫我們網站的功能了;就寫一個最簡單的功能,釋出企業新聞。開啟app內的models.py檔案,寫兩個資料模型類: from django.db import models class NewsClass(models.Model)

SSM框架整合實現增刪改查簡單的實現)

SSM框架整合實現增刪改查 檔案結構 POM檔案 <packaging>war</packaging> <!-- 處理亂碼 --> <properties> <!-- 設定專案字符集 -->

SSM框架登入頁面,圖片驗證碼,密碼加密對比資料庫資料二)

登入頁面的Controller的程式碼如下: 在這過程中,需要對填入資料進行判斷,是否為使用者名稱存在?是否密碼有誤?是否驗證碼有誤?如若都沒有錯誤則頁面跳轉至登入成功頁面。 @RequsetMapper("/login.do") public @Respons

select2 bootstrap-select2拉列表模糊查詢

當我們的下拉列表資料很多的時候 ,用下拉列表就沒那麼人性化了,bootstrap-select外掛的模糊搜尋功能便可以解決這個問題如下圖(先看截圖效果,再看快速引入): 運用很簡單: 1.下載bootstrap 和bootstrap-select 兩個外掛放入資原始檔夾中

ssm框架:在已有頁面中通過按鈕跳轉到一個新頁面

1、在已有頁面的jsp中設定一個跳轉按鈕      不帶任何樣式的按鈕程式碼:<button onclick="window.location.href='controller名稱/controller下對應的方法名(函式名)'">按鈕名稱</button

一種在ssm框架時間互動的簡單解決方案

  總結基於ssm框架下的統一快速處理時間的簡單方案。 1 約定與頁面互動格式 後臺程式為前端頁面提供介面,統一使用時間字串互動:包含兩種字串格式:"yyyy-MM-dd HH:mm:ss"和"yyy

java-web專案的分頁與聯合模糊查詢不使用分頁框架

記錄分頁的一種例項解決方案: 專案背景:書籍後臺管理系統 專案資料庫:mysql 專案框架:spring、spring-mvc、mybatis 開發模式:三層架構(controller層、service層、dao層) 一、準備工作-dto類 1.接收

SSM框架實現驗證碼圖片驗證功能原始碼)

SSM框架下實現驗證碼圖片驗證功能 背景圖片資源路徑  https://download.csdn.net/download/hero_qhz/10322064 一、首先,在pom裡面加上需要用的資源jar包等,並且加上驗證圖片的引用圖片路徑,否則專案啟動會報找不到圖片資源的錯

SSM框架檔案的上傳下載無內容時js彈窗提示)

SSM框架下檔案的上傳下載 非全部原創,僅用來記錄學習過的內容,自己添加了js判空彈窗的功能 1.首先我們建立一個測試用的jsp頁面,程式碼如下。 <%@ page language="java" contentType="text/html;

jQuery上傳外掛Uploadify使用Demo、本地上傳ssm框架

maven/Java/web/bootstrapQQ群:566862629。希望更多人一起幫助我學習。 效果: 1. jar包匯入: <!-- 檔案上傳元件 --> &l