mybatis实现登录和对员工表模糊查询分页并关联部门表

这是包的结构,需要注意xml文件和接口文件要放到同一个目录下,通常是在resources建一个和相同目录存放xml文件,否则无法读取到xml文件。也可以直接把xml放到接口的包当中,只不过这种方法不符合规则。

userMapper接口:

public interface UserMapper {
    User getByName(User users);
}

userMapper.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--名称空间namespace-->
<mapper namespace="com.mapper.UserMapper">
    <resultMap id="userSelect" type="com.pojo.User">
        <!--有主键就用id标签-->
        <id property="username" column="username"/>
        <result property="password" column="password"></result>
        <result property="role" column="role"></result>
    </resultMap>

    <select id="getByName" resultMap="userSelect">
        select * from user1 where username=#{username}
    </select>
</mapper>

service:

public interface UserService {
    User login(User users);
}
对应的实现类
public class UserServiceImpl implements UserService {

    @Override
    public User login(User users) {
        SqlSession session = SqlSessionUtil.openSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        users = mapper.getByName(users);
        return users;
    }
}

 servlet:

@WebServlet("/loginServlet")
public class UserServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String flag = req.getParameter("flag");

        if("out".equals(flag)){
            doOut(req,resp);
        }else{
            //登录操作
            //代码写到doPost里面即可,登录操作
            login(req,resp);
        }
    }

    public void login(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {

        HttpSession session = req.getSession();
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        // 绝对路径
        String path = req.getContextPath();
        // 通过对象传参
        User users = new User();
        // 设置用户名
        users.setUsername(username);
        // 设置密码
        users.setPassword(password);
        // 实例化业务逻辑
        UserService service = new UserServiceImpl();
        // 调用登录接口
        users = service.login(users);
        if (users != null) {
            //判断输入用户名是否正确
            if (!password.equals(users.getPassword())) {
                req.setAttribute("message", "密码错误,请重新输入");
                req.getRequestDispatcher("login.jsp").forward(req,resp);
            } else {
                //通过会话
                req.getSession().setAttribute("users",users);
                resp.sendRedirect("/empServlet");
            }
        } else {
            req.setAttribute("message", "用户名不存在");
            req.getRequestDispatcher("login.jsp").forward(req,resp);
        }
    }

    private void doOut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session = req.getSession();
        session.removeAttribute("name");
        req.getRequestDispatcher("login.jsp").forward(req,resp);
    }
}

前端代码login.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
<form method="post" action="/loginServlet">
    <input type="hidden" name="flag" value="flag">
    用户名:<input name="username" type="text"><br>
    密  码:<input name="password" type="password">
    <input type="submit">
</form>
</body>
</html>

下面就是模糊查询分页了,mybatis的分页是比较简单的,当然这是导入jar包的情况下,底层代码别人都已经写好了。

EmpMapper

public interface EmpMapper {

    // 一对多
    List<Emp> selectByPageHelper(Map map);

    Emp selectByEmpNo(Integer empno);

    Integer deleteEmp(Integer empno);

    Integer updateEmp(Emp emp);

    List<Emp> selectMoreTwoEmp(Emp emp);

    Integer insertEmp(Emp emp);


    Emp getSelectByNameEmp(String username);

    List<Emp> getSelectAll();
    // 通过数组实现批量删除,foreach
    int deleteMoreByEmpNo(@Param("empnos") Integer[] empnos);

    // 通过集合实现批量添加
    int insertMoreByList(@Param("emps") List<Emp> emps);

}

EmpMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--名称空间namespace-->
<mapper namespace="com.mapper.EmpMapper">

    <!--二级缓存-->
    <!--<cache/>-->


    <!--结果映射 property emp里面的名称   column数据库名称 -->
    <resultMap id="stuResultMap" type="com.pojo.Emp">
        <!--有主键就用id标签-->
        <id property="empno" column="EMPNO"/>
        <result property="ename" column="ENAME"/>
        <result property="job" column="JOB"/>
        <result property="mgr" column="MGR"/>
        <result property="hiredate" column="HIREDATE"/>
        <result property="sal" column="SAL"/>
        <result property="comm" column="COMM"/>
        <result property="deptno" column="DEPTNO"/>
        <!--
            association:处理多对一的映射关系
            property:需要处理多对一的映射关系属性名
            javaType:该属性的类型
        -->
        <association property="dept" javaType="com.pojo.Dept">
            <id property="deptno" column="DEPTNO"></id>
            <result property="dname" column="DNAME"></result>
            <result property="loc" column="LOC"></result>
        </association>
    </resultMap>
    <!--用resultMap就不需要用as了-->

    <resultMap id="empAndDeptByMap" type="com.pojo.Emp">
        <!--有主键就用id标签-->
        <id property="empno" column="EMPNO"/>
        <result property="ename" column="ENAME"/>
        <result property="job" column="JOB"/>
        <result property="mgr" column="MGR"/>
        <result property="hiredate" column="HIREDATE"/>
        <result property="sal" column="SAL"/>
        <result property="comm" column="COMM"/>
        <result property="deptno" column="DEPTNO"/>
        <!--
            column:分布查询的条件
            select:设置分步查询的sql的唯一标识,mapper接口全类名.方法名
        -->
        <association property="dept" select="com.mapper.DeptMapper.getDeptByStep" column="deptno"></association>
    </resultMap>

    <!--SQL标签:sql片段,把经常用的字段名写进去,
        用的时候<include refid="empColumns"></include>
    -->
    <sql id="empColumns">
        empno,
        ename,
        job,
        mgr,
        hiredate,
        sal,
        comm,
        deptno
    </sql>

    <select id="getSelectAll" resultType="com.pojo.Emp">
        select * from emp
    </select>

    <!--动态SQL查询-->
    <!--
        and ename like "%"#{ename}"%"
        第一个ename和数据库对应,后面的和test="ename"中的对应
    -->
    <!--
        设置特殊符号
        转译/CDATA
        <![CDATA[<=]]>
    -->
    <select id="selectMore" resultType="com.pojo.Emp" resultMap="stuResultMap">
        select * from emp where 1=1
        <if test="ename !=null and ename != '' ">
            and ename like "%"#{ename}"%"
        </if>
        <if test="sal != null and sal != '' ">
            and sal > #{sal}
        </if>
    </select>

    <!--where标签:可以去掉多余的and或or,如果条件都不成立则不会生成where-->
    <!--set标签:可以去掉多余的逗号-->
    <select id="selectMoreOne" resultType="com.pojo.Emp" resultMap="stuResultMap">
        select * from emp
        <where>
            <if test="ename !=null and ename != '' ">
                and ename like "%"#{ename}"%"
            </if>
            <if test="sal != null and sal != '' ">
                and sal > #{sal}
            </if>
        </where>
    </select>

    <!--
        prefix|suffix 前面或后面添加指定元素
        prefixOverrides|suffixOverrides 前面或后面删除指定元素
    -->
    <select id="selectMoreTwoEmp" resultType="com.pojo.Emp" resultMap="stuResultMap">
        select <include refid="empColumns"></include> from emp
        <trim prefix="where" prefixOverrides="and|or" >
            <if test="ename !=null and ename != '' ">
                 ename like "%"#{ename}"%" and
            </if>
            <if test="sal != null and sal != '' ">
                 sal >= #{sal}
            </if>
        </trim>
    </select>

    <!--separator=","分隔符-->
    <!--int deleteMoreByEmpNo(@Param("empnos") Integer[] empnos);-->
    <delete id="deleteMoreByEmpNo" parameterType="com.pojo.Emp">
        delete from emp where empno in
        (<foreach collection="empnos" item="empno" separator=",">
            #{empno}
    </foreach>)

    </delete>

    <!--int insertMoreByList(@Param("emps") List<Emp> emps);-->
    <insert id="insertMoreByList" parameterType="com.pojo.Emp">
        insert into emp values
        <foreach collection="emps" item="emp" separator=",">
         (#{emp.empno},#{emp.ename},#{emp.job},#{emp.mgr},#{emp.hiredate},#{emp.sal},#{emp.comm},null)
    </foreach>
    </insert>

    <select id="getSelectByNameEmp" resultType="com.pojo.Emp" resultMap="stuResultMap">
        select * from emp where ename=#{ename};
    </select>

    <insert id="insertEmp" parameterType="com.pojo.Emp">
        insert into emp values(#{empno},#{ename},#{job},#{mgr},#{hiredate},#{sal},#{comm},#{deptno})
    </insert>

    <update id="updateEmp" parameterType="com.pojo.Emp">
        update emp set ename = #{ename},
                       job = #{job},
                       mgr = #{mgr},
                       hiredate = #{hiredate},
                       sal = #{sal},
                       comm = #{comm},
                       deptno = #{deptno} where empno = #{empno}
    </update>

    <delete id="deleteEmp" parameterType="com.pojo.Emp">
        delete from emp where empno = #{empno}
    </delete>

    <select id="selectByEmpNo" resultType="com.pojo.Emp" resultMap="stuResultMap">
        select * from emp where empno = #{empno}
    </select>
   <!-- /*empno = #{empno} and*/-->
    <select id="selectByPageHelper" resultType="java.util.Map" resultMap="empAndDeptByMap">
        select *
        from emp
        <where>
            <if test="ename !=null and ename != '' ">
                and ename like "%"#{ename}"%"
            </if>
            <if test="sal != null and sal != '' ">
                and sal > #{sal}
            </if>
        </where>
    </select>

</mapper>

EmpServlet

public interface EmpService {

    PageInfo<Emp> selectByPageHelper(Map map);

    Emp selectByEmpNo(Integer empno);

    List<Emp> getSelectAll(Integer pageBegin, Integer pageSize);

    List<Emp> selectMoreTwo(String ename, Double sal, @Param("pageBegin") Integer pageBegin, @Param("pageSize") Integer pageSize);

    Integer insertEmp(Emp emp);

    Integer deleteEmp(Integer empno);

    Integer updateEmp(Emp emp);
}
对应的实现类EmpServletImpl
public class EmpServiceImpl implements EmpService {
    EmpMapper empMapper = SqlSessionUtil.openSession().getMapper(EmpMapper.class);

    @Override
    public PageInfo<Emp> selectByPageHelper(Map map) {
        PageHelper.startPage((Integer) map.get("pageIndex"),4);
        SqlSessionUtil.openSession().clearCache();
        List<Emp> list = empMapper.selectByPageHelper(map);
        PageInfo<Emp> info = new PageInfo<>(list);
        return info;
    }

    @Override
    public Emp selectByEmpNo(Integer empno) {
        SqlSession session = null;
        try {
            session = SqlSessionUtil.openSession();
            EmpMapper mapper = session.getMapper(EmpMapper.class);
            Emp emp = mapper.selectByEmpNo(empno);
            return emp;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.commit();
        }
        return null;
    }

    @Override
    public List<Emp> getSelectAll(Integer pageBegin, Integer pageSize) {
        List<Emp> list = new ArrayList<>();
        SqlSession session = null;
        try {
            session = SqlSessionUtil.openSession();
            EmpMapper mapper = session.getMapper(EmpMapper.class);
            /*
            index:当前页起始索引
            pageSize:每页显示的条数
            pageNum:当前页的页码
            index = (pageNum - 1) * pageSize*/
            PageHelper.startPage(pageBegin,pageSize);
            list = mapper.getSelectAll();
            PageInfo<Emp> pageInfo = new PageInfo<>(list);
            System.out.println(pageInfo);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.commit();
            // 关闭session之前老师在讲转账那个练习时说过,只不过我没当回事
            // 现在不会关了
        }
        return list;
    }

    @Override
    public List<Emp> selectMoreTwo(String ename, Double sal, Integer pageBegin, Integer pageSize) {
        List<Emp> list = new ArrayList<>();
        SqlSession session = null;
        try {
            session = SqlSessionUtil.openSession();
            EmpMapper mapper = session.getMapper(EmpMapper.class);
            /*
            index:当前页起始索引
            pageSize:每页显示的条数
            pageNum:当前页的页码
            index = (pageNum - 1) * pageSize*/
            Emp emp = new Emp();
            emp.setSal(sal);
            emp.setEname(ename);
            PageHelper.startPage(pageBegin,pageSize);
            list = mapper.selectMoreTwoEmp(emp);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.commit();
            // 关闭session之前老师在讲转账那个练习时说过,只不过我没当回事
            // 现在不会关了
        }
        return list;
    }

    @Override
    public Integer deleteEmp(Integer empno){
        SqlSession session = null;
        try {
            session = SqlSessionUtil.openSession();
            EmpMapper mapper = session.getMapper(EmpMapper.class);
            Integer delete = mapper.deleteEmp(empno);
            return delete;
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            session.commit();
        }
        return null;
    }

    @Override
    public Integer updateEmp(Emp emp){
        SqlSession session = null;
        try {
            session = SqlSessionUtil.openSession();
            EmpMapper mapper = session.getMapper(EmpMapper.class);
            Integer update = mapper.updateEmp(emp);
            return update;
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            session.commit();
        }
        return null;
    }

    @Override
    public Integer insertEmp(Emp emp){
        SqlSession session = null;
        try {
            session = SqlSessionUtil.openSession();
            EmpMapper mapper = session.getMapper(EmpMapper.class);
            Integer insert = mapper.insertEmp(emp);
            return insert;
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            session.commit();
        }
        return null;
    }

控制器EmpServlet

@WebServlet("/empServlet")
public class EmpServlet extends HttpServlet {
    EmpService empService = new EmpServiceImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String flag = req.getParameter("flag");
        if ("add".equals(flag)){
            doAdd(req,resp);
        } else if ("update".equals(flag)){
            doUpdate(req,resp);
        } else if ("delete".equals(flag)) {
            doDel(req,resp);
        } else if ("findName".equals(flag)) {
            //list.jsp中的EL表达式   var="update" value="/bookServlet?flag=findName&eno=${book.id}"
            Integer empno = Integer.valueOf(req.getParameter("empno"));
            Emp empNo = empService.selectByEmpNo(empno);
//            System.out.println("empNo = " + empNo);
            //这个emp就是update中的emp,根据键找值
            req.setAttribute("emp",empNo);
            req.getRequestDispatcher("update.jsp").forward(req,resp);
            return;
        }
        // 查询所有
//        SelectAll(req,resp);
//        selectMoreTwo(req,resp);
        doGetPage(req,resp);
    }

    private void doGetPage(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Map<String,Object> map=new HashMap<>();
        //获得页面出传入的当前页码
        String currentPage = req.getParameter("pageIndex");
        if(currentPage==null){
            currentPage="1";
        }
        int pageIndex=Integer.parseInt(currentPage);
        map.put("pageIndex",pageIndex);//把当前页码封装到map里面
        // map的key值时sql语句中写的,req从前端获得员工名称和薪资
        map.put("ename",req.getParameter("ename"));
        /*map.put("lowSal",req.getParameter("lowSal"));
        map.put("highSal",req.getParameter("highSal"));*/
        map.put("sal",req.getParameter("sal"));
        PageInfo<Emp> empPageInfo = empService.selectByPageHelper(map);
        //把此对象放入到作用域
        req.setAttribute("pageInfo",empPageInfo);
        //把传输放入到作用域
        req.setAttribute("serachrName",req.getParameter("ename"));
//        empPageInfo.getList()
        //转发到list.jsp页面
        req.getRequestDispatcher("/list.jsp").forward(req,resp);
    }
    private void doDel(HttpServletRequest req, HttpServletResponse resp) {
        String empno = req.getParameter("empno");
        empService.deleteEmp(Integer.parseInt(empno));
    }

    private void doUpdate(HttpServletRequest req, HttpServletResponse resp) {
        Integer empno = Integer.valueOf(req.getParameter("empno"));
        String ename = req.getParameter("ename");
        String job = req.getParameter("job");
        Integer mgr = Integer.valueOf(req.getParameter("mgr"));
        String hiredate = req.getParameter("hiredate");
        Double sal = Double.valueOf(req.getParameter("sal"));
        Double comm = Double.valueOf(req.getParameter("comm"));
        Integer deptno = Integer.valueOf(req.getParameter("deptno"));
        Emp emp = new Emp(empno,ename,job,mgr,hiredate,sal,comm,deptno);
        empService.updateEmp(emp);
    }

    private void doAdd(HttpServletRequest req, HttpServletResponse resp) {
        Integer empno = Integer.valueOf(req.getParameter("empno"));
        String ename = req.getParameter("ename");
        String job = req.getParameter("job");
        Integer mgr = Integer.valueOf(req.getParameter("mgr"));
        String hiredate = req.getParameter("hiredate");
        Double sal = Double.valueOf(req.getParameter("sal"));
        Double comm = Double.valueOf(req.getParameter("comm"));
        Integer deptno = Integer.valueOf(req.getParameter("deptno"));
        Emp emp = new Emp(empno,ename,job,mgr,hiredate,sal,comm,deptno);
        empService.insertEmp(emp);
    }

DeptMapper接口

public interface DeptMapper {

    // 分布查询,第二步
    Dept getDeptByStep(Integer deptno);

    List<Dept> getSelectAll();

    int insertDept(Dept dept);

    int deleteDept(String username);

    int updateDept(Dept dept);

    Dept getSelectByName(String username);

    List<Dept> selectMoreTwo(Dept dept);
}

对应的xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--名称空间namespace-->
<mapper namespace="com.mapper.DeptMapper">

    <resultMap id="deptAndEmpResultMap" type="com.pojo.Dept">
        <id property="deptno" column="DEPTNO"></id>
        <result property="dname" column="DNAME"/>
        <result property="loc" column="LOC"/>
        <!--
            collection:专门处理集合
            ofType:集合中的属性
        -->
        <collection property="emps" ofType="com.pojo.Emp">
            <id property="empno" column="EMPNO"/>
            <result property="ename" column="ENAME"/>
            <result property="job" column="JOB"/>
            <result property="mgr" column="MGR"/>
            <result property="hiredate" column="HIREDATE"/>
            <result property="sal" column="SAL"/>
            <result property="comm" column="COMM"/>
        </collection>
    </resultMap>

    <!--一对多分步查询-->
    <resultMap id="AndEmpResultMap" type="com.pojo.Dept">
        <id property="deptno" column="DEPTNO"></id>
        <result property="dname" column="DNAME"/>
        <result property="loc" column="LOC"/>
        <collection property="emps" select="com.mapper.EmpMapper.getDeptAndEmpByStep" column="deptno"></collection>
    </resultMap>


    <select id="getDeptByStep" resultType="com.pojo.Dept">
        select *
        from dept
        where deptno = #{deptno}
    </select>

    <insert id="insertDept" parameterType="com.pojo.Dept">
        insert into dept values (#{deptno},#{dname},#{loc})
    </insert>

    <update id="updateDept" parameterType="com.pojo.Dept">
        update dept set deptno=#{deptno},dname=#{dname},loc=#{loc}
    </update>

    <delete id="deleteDept" parameterType="com.pojo.Dept">
        delete from dept where deptno=#{deptno}
    </delete>
</mapper>

前端代码list.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ page import="com.pojo.Emp" %>
<%@ page import="java.util.List" %>

<%--在以前使用EL表达式的时候,通过<%@ page language="java" pageEncoding="utf-8" isELIgnored="false" %>可解决EL表达式不能识别问题。--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page language="java" pageEncoding="utf-8" isELIgnored="false" %>
<html>
<head>
    <title>员工</title>
    <script>
        /*$(function () {
            $("#delete").click(function (empno) {
                var b=confirm('确定删除?')
                if(b){
                    location.href='/empServlet?flag=delete&eno='+empno
                }
            })
        })*/
    </script>
</head>
<body>
<div id="nav">
    <button type="button" οnclick="window.location.href='/add.jsp'">
        <p id="add">添加员工</p>
    </button>
</div>
<div id="comm">
    <%--指定不指定提交到控制器没影响--%>
    <form action="/empServlet">
<%--    <form>--%>
        员工姓名:<input name="ename" type="text" value="${serachrName}">
        员工工资:<input name="sal" type="text" value="${sal}">
        <input type="submit" value="查询" />
    </form>
</div>
<table>
    <tr>
        <th>员工编号</th>
        <th>员工姓名</th>
        <th>员工工作</th>
        <th>员工经理</th>
        <th>工作时间</th>
        <th>员工工资</th>
        <th>员工奖金</th>
        <th>部门编号</th>
        <th>操作</th>
    </tr>
    <c:forEach items="${pageInfo.list}" var="emp">
        <tr>
            <td>${emp.empno}</td>
            <td>${emp.ename}</td>
            <td>${emp.job}</td>
            <td>${emp.mgr}</td>
            <td>${emp.hiredate}</td>
            <td>${emp.sal}</td>
            <td>${emp.comm}</td>
            <td>${emp.deptno}</td>
            <td>
                <c:url var="update" value="/empServlet?flag=findName&empno=${emp.empno}">
                    <c:param name="empno" value="${emp.empno}"></c:param>
                </c:url>
                    <%--<input type="hidden" name="flag" value="update">--%>
                <a href="${update}">修改</a>

                <%--<c:url var="delete" value="/empServlet?flag=delete&empno=${emp.empno}">
                    <c:param name="empno" value="${emp.empno}"></c:param>
                </c:url>--%>
                    <%--隐藏域--%>
<%--                <input type="hidden" name="flag" value="delete">--%>
                <a id="delete" href="delete.jsp">删除</a>
            </td>
        </tr>
    </c:forEach>
</table>
<div id="page">
    <c:url var="first" value="/empServlet">
        <c:param name="ename" value="${serachrName}"></c:param>
        <c:param name="pageIndex" value="1"></c:param>
        <c:param name="sal" value="${sal}"></c:param>
    </c:url>

    <a href="${first}">首页</a>

    <c:url value="/empServlet" var="forward">
        <c:param name="pageInfo.pageNum" value="${pageInfo.pageNum-1}"></c:param>
        <c:param name="ename" value="${serachrName}"></c:param>
        <c:param name="sal" value="${sal}"></c:param>
    </c:url>

    <c:if test="${pageInfo.pageNum>1}">
        <a href="${forward}">上一页</a>
    </c:if>

    <c:url value="/empServlet" var="next">
        <c:param name="pageIndex" value="${pageInfo.pageNum+1}"></c:param>
        <c:param name="ename" value="${serachrName}"></c:param>
        <c:param name="sal" value="${sal}"></c:param>
    </c:url>

    <c:if test="${pageInfo.pageNum<pageInfo.pages}">
        <a href="${next}">下一页</a>
    </c:if>

    <c:url var="end" value="/empServlet">
<%--        <c:param name="totalPage" value="${totalPage}"></c:param>--%>
        <c:param name="pageIndex" value="${pageInfo.pages}"></c:param>
        <c:param name="ename" value="${serachrName}"></c:param>
        <c:param name="sal" value="${sal}"></c:param>
    </c:url>

    <a href="${end}">末页</a>
</div>

</body>
<%--<script>
        function del(empno) {
            var b=confirm('确定删除?')
            if(b){
                location.href='/empServlet?flag=delete&eno='+empno
            }
        }
</script>--%>
</html>

因为使用的是maven创建web项目,以下是我导入的jar包
<!--    单元测试-->
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.13.2</version>
  <scope>test</scope>
</dependency>

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.17</version>
</dependency>

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.5</version>
</dependency>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.20</version>
</dependency>

<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.2.3</version>
</dependency>

<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-core</artifactId>
  <version>1.2.3</version>
</dependency>

<!--分页插件-->
<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper</artifactId>
  <version>5.3.1</version>
</dependency>
<dependency>
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>
  <version>7.7.1</version>
  <scope>test</scope>
</dependency>

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
</dependency>

<dependency>
  <groupId>taglibs</groupId>
  <artifactId>standard</artifactId>
  <version>1.1.2</version>
</dependency>

增删改的方法和JavaBean我就不写了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值