五. 管理员维护

五. 管理员维护

分支: git checkout -b 5.0.0_admin_page

1. 任务清单

  • 分页显示 Admin 数据

    • 不带关键词分页
    • 带关键词分页
  • 新增 Admin

  • 更新 Admin

  • 单条删除 Admin

2. 分页

2.1 目标

  • 将数据库中的 Admin 数据在页面上以分页形式显示
  • 在后端将 “带关键词” 和 “不带关键词” 的分页合并为统一套代码

2.2 思路

img

2.3 代码

2.3.1 配置
  1. 引入 PageHelper - atcrowdfunding03-admin-component
  • 确认是否加入了依赖
  • 无需引入, 之前已引入
<!-- Mybatis 分页插件 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>4.0.0</version>
</dependency>
  1. 在 SqlSessionFactoryBean 配置 Mybatis 插件

img

    <!-- 配置 sqlSessionFactoryBean -->
    <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 配置插件 -->
        <property name="plugins">
            <array>
                <!-- 配置 PageHelper 分页插件 -->
                <bean class="com.github.pagehelper.PageHelper">
                    <property name="properties">
                        <!--使用下面的方式配置参数,一行配置一个 -->
                        <value>
                            <!-- 配置数据库方言, 告诉 PageHelper 当前使用的数据库 -->
                            dialect=mysql
                            <!-- 配置页码的合理化修正 -->
                          	<!-- 如果 pageNum<=0 会查询第一页,如果 pageNum>总页数 会查询最后一页 -->
                            reasonable=true
                        </value>
                    </property>
                </bean>
            </array>
        </property>
    </bean>
2.3.2 接口流程
  1. AdminMapper.xml
  • 小技: <Ctrl + Shift + N 搜索文件>
<!-- 自定义 start -->
<select id="selectAdminByKeyword" resultMap="BaseResultMap">
    select id, login_acct, user_pswd, user_name, email, create_time
    from t_admin
    where login_acct like concat("%", #{keyword}, "%")
       or user_name like concat("%", #{keyword}, "%")
       or email like concat("%", #{keyword}, "%")
</select>
<!-- 自定义 end -->
  1. 2.3.3 AdminMapper 接口中声明方法
/**
 * 根据 keyword 查询管理员信息
 * 
 * @param keyword
 * @return
 */
List<Admin> selectAdminByKeyword(String keyword)
  1. 服务接口: AdminService.java
/**
 * 根据 keyword 查看分页数据 
 * 
 * @param keyword
 * @param pageNum
 * @param pageSize
 * @return
 */
PageInfo<Admin> getPageInfo(String keyword, Integer pageNum, Integer pageSize);
  1. 服务实现 : AdminServiceImpl.java
@Override
public PageInfo<Admin> getPageInfo(String keyword, Integer pageNum, Integer pageSize) {
   
    // 1. 调用 PageHelper 的静态方法开启分页功能
    // 这里充分体现了 PageHelper 的"非侵入式"设计: 原本要做的查不必有任何修改
    PageHelper.startPage(pageNum, pageSize);

    // 2. 执行查询
    List<Admin> list = adminMapper.selectAdminByKeyword(keyword);

    // 3. 封装到 PageInfo 对象中
    return new PageInfo<>(list);
}
  1. 控制层: AdminHandler.java
/**
 * 获取分页信息
 * 
 * @param keyword
 * @param pageNum
 * @param pageSize
 * @param modelMap
 * @return
 */
@RequestMapping("/admin/get/page.html")
public String getPageInfo(
        // 使用 @RequestParam 注解的 defaultValue 属性, 指定默认值, 在请求中没有携带对应参数时使用默认值
        // keyword 默认值使用空字符串, 和 SQL 语句配合实现两种情况适配
        @RequestParam(value="keyword", defaultValue="") String keyword,
        @RequestParam(value="pageNum", defaultValue="1") Integer pageNum,
        @RequestParam(value="pageSize", defaultValue="5") Integer pageSize,
        ModelMap modelMap
) {
   
    // 调用 adminService 获取 PageInfo 对象
    PageInfo<Admin> pageInfo = adminService.getPageInfo(keyword, pageNum, pageSize);

    // 将 PageInfo 对象传入模型
    modelMap.addAttribute(CrowdConstant.ATTR_NAME_PAGE_INFO, pageInfo);

    return "admin-page";
}
  • 对应的常量
public static final String ATTR_NAME_PAGE_INFO = "pageInfo";
  1. 前端 JSP 页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="zn-CN">
<%@include file="/WEB-INF/include-head.jsp" %>

<body>

<%@include file="/WEB-INF/include-nav.jsp" %>
<div class="container-fluid">
    <div class="row">
        <%@include file="/WEB-INF/include-sidebar.jsp" %>

        <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h3 class="panel-title"><i class="glyphicon glyphicon-th"></i> 数据列表</h3>
                </div>
                <div class="panel-body">
                    <form class="form-inline" role="form" style="float:left;">
                        <div class="form-group has-feedback">
                            <div class="input-group">
                                <div class="input-group-addon">查询条件</div>
                                <input class="form-control has-success" type="text" placeholder="请输入查询条件">
                            </div>
                        </div>
                        <button type="button" class="btn btn-warning"><i class="glyphicon glyphicon-search"></i> 查询
                        </button>
                    </form>
                    <button type="button" class="btn btn-danger" style="float:right;margin-left:10px;"><i
                            class=" glyphicon glyphicon-remove"></i> 删除
                    </button>
                    <button type="button" class="btn btn-primary" style="float:right;"
                            onclick="window.location.href='add.html'"><i class="glyphicon glyphicon-plus"></i> 新增
                    </button>
                    <br>
                    <hr style="clear:both;">
                    <div class="table-responsive">
                        <table class="table  table-bordered">
                            <thead>
                            <tr>
                                <th width="30">#</th>
                                <th width="30"><input type="checkbox"></th>
                                <th>账号</th>
                                <th>名称</th>
                                <th>邮箱地址</th>
                                <th width="100">操作</th>
                            </tr>
                            </thead>
                            <tbody>
                            <c:if test="${ empty requestScope.pageInfo.list }">
                                <tr>
                                    <td colspan="6" align="center">抱歉!没有查询到数据!</td>
                                </tr>
                            </c:if>
                            <c:if test="${ !empty requestScope.pageInfo.list }">
                                <c:forEach items="${ requestScope.pageInfo.list }" var="admin" varStatus="myStatus">
                                    <tr>
                                        <td>${ myStatus.count }</td>
                                        <td><input type="checkbox"></td>
                                        <td>${ admin.loginAcct }</td>
                                        <td>${ admin.userName }</td>
                                        <td>${ admin.email }</td>
                                        <td>
                                            <button type="button" class="btn btn-success btn-xs"><i
                                                    class=" glyphicon glyphicon-check"></i></button>
                                            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 蓝凌标准产品v15.0管理员手册是一本详细的指南,旨在帮助管理员更好地了解和使用该产品。该手册包含了产品的各个方面,包括系统安装、配置和运营管理等。 管理员可以通过该手册详细了解系统的安装、配置流程,从而有效地部署系统。在系统运营过程中,管理员可以通过手册查找常见问题的解决方案,以保证系统的稳定运行。手册还提供了多个管理工具的使用指南,包括用户管理、部门管理、权限管理和审批流程配置,为管理员提供了更加灵活的操作方式。 此外,该手册还提供了安全管理和系统维护方面的建议和步骤,以确保系统的安全性和稳定性。最后,手册还提供了一些常见问题的解决方案和技术支持的联系方式,以便管理员可以即时得到帮助和解答疑问。 总之,蓝凌标准产品v15.0管理员手册是一本权威、全面、实用的指南,为管理员提供了充分的帮助,帮助他们更好地管理和运营系统。 ### 回答2: 蓝凌标准产品v15.0管理员手册是一本涵盖了蓝凌产品管理的全面指南。手册包含了蓝凌产品的安装、配置、维护、升级、备份等方面的内容,为管理员提供了详尽的指导和建议。 其中,手册首先介绍了蓝凌产品的概览和整体架构,让管理员对产品有一个全面的了解;其次,手册详细介绍了安装和配置蓝凌产品所需要的各种步骤和技术要点,涵盖了操作系统、数据库、服务器等方面;另外,手册还对蓝凌产品的权限管理、安全设置、数据备份、日志监控等方面作出了详细的说明和操作步骤。 管理员手册还提供了大量的操作示例,并对常见问题及解决方案进行了细致的介绍,帮助管理员快速解决问题。此外,手册还对产品升级和维护提供了详细说明,让管理员能够及时更新产品。 总之,蓝凌标准产品v15.0管理员手册是一本全面详实的指南,为管理员提供了一揽子的解决方案和操作步骤,使其能够更好地管理和使用蓝凌产品。 ### 回答3: 蓝凌标准产品v15.0管理员手册是一本详细介绍蓝凌标准产品操作和系统设置的指南。管理员手册共分为个部分。 第一部分介绍了系统的概述,包括了系统的优势和适用范围。同时也介绍了系统的基本功能和架构,帮助管理员更好地了解系统。 第二部分着重介绍了系统的安装和部署,包括了系统的硬件和软件要求、安装流程等。通过这一部分,管理员可以更加详细地了解如何将系统安装和部署到自己的服务器上。 第三部分详细介绍了系统的各项配置和管理,包括了用户管理、权限管理、角色管理、组织架构管理等。管理员可以了解到如何配置和管理各项功能,确保整个系统的安全和正常运行。 第四部分介绍了系统的基本操作和功能,包括了各个模块的操作指南、系统的常见问题和解决方案等。管理员可以通过这一部分了解系统的详细操作步骤,解决用户的问题。 第部分为管理员提供了一些实用的技巧和工具,帮助管理员更加轻松地管理和使用系统。 总的来说,蓝凌标准产品v15.0管理员手册是一本详细介绍了整个系统的使用和管理的指南。管理员可以通过手册更加轻松地掌握系统的操作和管理,最终确保整个系统的安全和正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值