MyBatis快速入门——第六章、MyBatis分页demo测试

简介: MyBatis快速入门——第六章、MyBatis分页demo测试

1、映射mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC ".//mybaits.org/DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.item.mapper.ProductMapper">
    <select id="GetInfo" resultType="Product">
        select * from product limit #{pageNow},#{pageSize}
    </select>
    <delete id="DeleteById" parameterType="java.lang.Integer">
        delete from product where id="${id}"
    </delete>
</mapper>

2、映射接口ProductMapper

package com.item.mapper;
import com.item.model.Product;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface ProductMapper {
    /**
     * 查询所有的接口
     * @return
     */
    List<Product> GetInfo(@Param("pageNow") int pageNow,@Param("pageSize")int pageSize);
    /**
     * 删除
     * @param id
     * @return
     */
    int DeleteById(@Param("id") String id);
}


3、ProductDAO.java数据层

package com.item.dao;
import com.item.common.JDBC;
import com.item.mapper.ProductMapper;
import com.item.model.Product;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import java.util.List;
public class ProductDAO {
    /**
     * 获取所有查询信息
     * @return
     */
    public static List<Product> GetInfo(int pageNow,int pageSize){
        SqlSessionFactory factory = JDBC.GetConn();
        SqlSession session = factory.openSession();
        ProductMapper db = session.getMapper(ProductMapper.class);
        List<Product> list = db.GetInfo(pageNow,pageSize);
        session.close();
        return list;
    }
    /**
     * 删除
     * @param id
     * @return
     */
    public static boolean DeleteById(String id){
        SqlSessionFactory factory = JDBC.GetConn();
        SqlSession session = factory.openSession();
        ProductMapper db = session.getMapper(ProductMapper.class);
        int rows = db.DeleteById(id);
        session.commit();
        session.close();
        return rows>0;
    }
}

4、GetInfoServlet.java的servlet文件

package com.item.servlet;
import com.item.dao.ProductDAO;
import com.item.model.Product;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet("/GetInfo")
public class GetInfoServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String pageNow = request.getParameter("pageNow");
        String pageSize = request.getParameter("pageSize");
        int int_pageNow = Integer.parseInt(pageNow.isEmpty() ? "0" : pageNow);
        int int_pageSize = Integer.parseInt(pageSize.isEmpty() ? "3" : pageSize);
        System.out.println(int_pageNow+"~"+int_pageSize);
        int_pageNow=(int_pageNow-1)*int_pageSize;
        System.out.println(int_pageNow);
        List<Product> list = ProductDAO.GetInfo(int_pageNow,int_pageSize);
        //发送至前台
        request.setAttribute("lists",list);
        request.getRequestDispatcher("GetInfo.jsp").forward(request,response);
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}


5、JSP页面

<%@ page import="java.util.List" %>
<%@ page import="com.item.model.Product" %><%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2022/5/16 0016
  Time: 15:55
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>bootStrap——table</title>
    <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<% List<Product> list = (List<Product>) request.getAttribute("lists"); %>
<div style="width: 90%;text-align: center;padding:50px;font-size: 3rem">
    [<a href="/GetInfo?pageNow=1&pageSize=5">1,5</a>]
    [<a href="/GetInfo?pageNow=1&pageSize=3">1,3</a>]
    [<a href="/GetInfo?pageNow=1&pageSize=5">1,5</a>]
    [<a href="/GetInfo?pageNow=2&pageSize=5">2,5</a>]
    [<a href="/GetInfo?pageNow=2&pageSize=3">2,3</a>]
    [<a href="/GetInfo?pageNow=3&pageSize=2">3,2</a>]
</div>
<table class="table table-bordered table-hover">
    <tr class="info">
        <th>编号</th>        <th>创建时间</th>        <th>修改时间</th>        <th>产品名称</th>
        <th>产品标题</th>        <th>产品价格</th>        <th>产品数量</th>        <th>产品厂家</th>
        <th>产品颜色</th>        <th>产品重量</th>        <th>产品状态</th>        <th>操作</th>
    </tr>
    <% for (Product p : list) {
    %>
        <tr>
            <td><%=p.getId()%></td>
            <td><%=p.getCreateDate()%></td>
            <td><%=p.getModifyDate()%></td>
            <td><%=p.getProductName()%></td>
            <td><%=p.getProductTitle()%></td>
            <td><%=p.getProductPrice()%></td>
            <td><%=p.getProductCount()%></td>
            <td><%=p.getProductType()%></td>
            <td><%=p.getProductColor()%></td>
            <td><%=p.getProductWeight()%></td>
            <td><%=p.getProductStatus()%></td>
            <td>
                <a href="/DeleteById?id=<%=p.getId()%>" onclick="return confirm('是否删除此行?')" class="btn btn-primary">删除</a>
            </td>
        </tr>
    <%
    } %>
</table>
<hr/>
</body>
</html>

6、访问路径

http://localhost:8088/GetInfo?pageNow=1&pageSize=5


7、访问效果

image.png

image.png




删除一个信息


image.png

相关文章
|
6月前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
|
6月前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
|
1月前
|
安全 Java 数据库
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
这篇文章是关于Apache Shiro权限管理框架的详细学习指南,涵盖了Shiro的基本概念、认证与授权流程,并通过Spring Boot测试模块演示了Shiro在单应用环境下的使用,包括与IniRealm、JdbcRealm的集成以及自定义Realm的实现。
42 3
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
|
18天前
|
SQL Java 数据库连接
MyBatis-Plus快速入门:从安装到第一个Demo
本文将带你从零开始,快速入门 MyBatis-Plus。我们将首先介绍如何安装和配置 MyBatis-Plus,然后通过一个简单的示例演示如何使用它进行数据操作。无论你是 MyBatis 的新手还是希望提升开发效率的老手,本文都将为你提供清晰的指导和实用的技巧。
104 0
MyBatis-Plus快速入门:从安装到第一个Demo
|
3月前
|
SQL Java 数据库
2、Mybatis-Plus 测试增、删、改、查
这篇文章是关于使用Mybatis-Plus进行数据库的增删改查操作的本地测试,包括创建数据库表、添加数据、创建使用lombok的实体类、添加mapper接口以及编写测试代码进行基本的数据库操作验证。
2、Mybatis-Plus 测试增、删、改、查
|
5月前
|
Java 数据库连接 API
后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
63 3
|
6月前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(五十八)-java+ selenium自动化测试-分页测试(详细教程)
【5月更文挑战第22天】本文介绍了自动化测试分页的实现方法。首先,文章提出了测试分页时关注的三个关键点:总页数、当前页数和页码导航的可用性。接着,作者分享了一个实用网站([https://www.jq22.com/](https://www.jq22.com/))以找到示例进行实践。在代码部分,展示了使用Java和Selenium进行自动化测试的示例代码,包括获取总页数、遍历所有页面及判断当前页面等操作。最后,简要总结了分页自动化测试的实现过程。
53 1
|
6月前
|
SQL Java 数据库连接
Mybatis快速入门,Mybatis的核心配置文件
Mybatis快速入门,Mybatis的核心配置文件
45 1
|
5月前
|
Java 数据库连接 Apache
JavaWeb基础第二章(Maven项目与MyBatis 的快速入门与配置)
JavaWeb基础第二章(Maven项目与MyBatis 的快速入门与配置)
|
6月前
|
XML Java 数据库连接
【MyBatisPlus】快速入门、常用注解、常用配置
【MyBatisPlus】快速入门、常用注解、常用配置
77 0