提供一个方法根据给定的多个empno进行批量更新操作
    image.png
    image.png
    controller.UpdateEmpByEmpnoController

    1. package controller;
    2. import service.EmpService;
    3. import javax.servlet.ServletException;
    4. import javax.servlet.annotation.WebServlet;
    5. import javax.servlet.http.HttpServlet;
    6. import javax.servlet.http.HttpServletRequest;
    7. import javax.servlet.http.HttpServletResponse;
    8. import java.io.IOException;
    9. @WebServlet("/updateEmpByEmpno")
    10. public class UpdateEmpByEmpnoController extends HttpServlet {
    11. @Override
    12. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    13. //1.获取表单中全部的勾选empno
    14. String[] empnos=req.getParameterValues("empno");
    15. EmpService empService=new EmpService();
    16. empService.updateEmp(empnos);
    17. req.getRequestDispatcher("update.html").forward(req,resp);
    18. }
    19. }

    controller.SelectEmpController

    1. package controller;
    2. import com.alibaba.fastjson.JSONObject;
    3. import domain.Emp;
    4. import service.EmpService;
    5. import javax.servlet.ServletException;
    6. import javax.servlet.annotation.WebServlet;
    7. import javax.servlet.http.HttpServlet;
    8. import javax.servlet.http.HttpServletRequest;
    9. import javax.servlet.http.HttpServletResponse;
    10. import java.io.IOException;
    11. import java.util.List;
    12. @WebServlet("/selectEmp")
    13. public class SelectEmpController extends HttpServlet {
    14. @Override
    15. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    16. req.setCharacterEncoding("UTF-8");
    17. String deptno=req.getParameter("deptno");
    18. String job=req.getParameter("job");
    19. String order=req.getParameter("order");
    20. EmpService service = new EmpService();
    21. List<Emp> empList= service.selectEmpByMybatis(deptno,job,order);
    22. JSONObject json=new JSONObject();
    23. json.put("empList",empList);
    24. resp.setCharacterEncoding("UTF-8");
    25. resp.getWriter().write(json.toJSONString());
    26. }
    27. }

    dao.EmpDao

    1. package dao;
    2. import domain.Emp;
    3. import org.apache.ibatis.session.SqlSession;
    4. import util.MyUtil;
    5. import java.sql.Connection;
    6. import java.sql.DriverManager;
    7. import java.sql.PreparedStatement;
    8. import java.sql.ResultSet;
    9. import java.util.ArrayList;
    10. import java.util.Arrays;
    11. import java.util.List;
    12. import java.util.Map;
    13. public class EmpDao {
    14. private SqlSession sqlSession = MyUtil.getSqlSession(true);
    15. //提供一个方法根据给定的多个empno进行批量更新操作
    16. public void updateEmp(String[] empnos){
    17. sqlSession.update("updateEmp", Arrays.asList(empnos));
    18. }
    19. }

    domain.Emp(省略,见表格自行想象)
    mapper.EmpMapper.xml

    1. <?xml version="1.0" encoding="UTF-8" ?>
    2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    3. <mapper namespace="dao.EmpDao">
    4. <update id="updateEmp">
    5. update emp set job = 'test' where empno in
    6. <foreach collection="list" item="empno" index="i" open="(" separator="," close=")" >
    7. #{empno}
    8. </foreach>
    9. </update>
    10. </mapper>

    service.EmpService

    package service;
    
    import dao.EmpDao;
    import domain.Emp;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class EmpService {
        private EmpDao empDao=new EmpDao();
    
        //提供一个方法根据给定的多个empno进行批量更新操作
        public void updateEmp(String[] empnos){
            empDao.updateEmp(empnos);
        }
    
    }
    

    util包中类以及configuration.xml中的代码省略
    update.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <script type="text/javascript">
            window.onload=function () {
                var tbodyEle=document.getElementById("empTable");
                var updateButtonEle =document.getElementById("updateButton");
                var xhr=new XMLHttpRequest();
                xhr.open("post","selectAllEmp",true);
                xhr.onreadystatechange=function () {
                    if(xhr.readyState==4&&xhr.status==200){
                        var json=JSON.parse(xhr.responseText);
                        var empList=json.empList;
                        for(var i=0;i<empList.length;i++){
                            //每一次循环代表一个emp对象---展示在表格的一行内  tr
                            var newTrObject = document.createElement("tr");
    
                            //每一行记录前面多一个checkbox
                            var inputObject=document.createElement("input");
                            inputObject.type="checkbox";
                            inputObject.name="empno";
                            inputObject.value=empList[i].empno;
                            var checkboxTdObject = document.createElement("td");
                            checkboxTdObject.appendChild(inputObject);
                            newTrObject.appendChild(checkboxTdObject);
    
                            //每一个emp对象中的8个属性
                            var empTdObject = document.createElement("td");
                            empTdObject.innerHTML=empList[i].empno;
                            newTrObject.appendChild(empTdObject);
    
                            var enameTdObject = document.createElement("td");
                            enameTdObject.innerHTML=empList[i].ename;
                            newTrObject.appendChild(enameTdObject);
    
                            var jobTdObject = document.createElement("td");
                            jobTdObject.innerHTML=empList[i].job;
                            newTrObject.appendChild(jobTdObject);
    
                            var mgrTdObject = document.createElement("td");
                            mgrTdObject.innerHTML=empList[i].mgr;
                            newTrObject.appendChild(mgrTdObject);
    
                            var hiredateTdObject = document.createElement("td");
                            hiredateTdObject.innerHTML=empList[i].hiredate;
                            newTrObject.appendChild(hiredateTdObject);
    
                            var salTdObject = document.createElement("td");
                            salTdObject.innerHTML=empList[i].sal;
                            newTrObject.appendChild(salTdObject);
    
                            var commTdObject = document.createElement("td");
                            commTdObject.innerHTML=empList[i].comm;
                            newTrObject.appendChild(commTdObject);
    
                            var deptnoTdObject = document.createElement("td");
                            deptnoTdObject.innerHTML=empList[i].deptno;
                            newTrObject.appendChild(deptnoTdObject);
    
                            //将新的行对象添加在tbody内
                            tbodyEle.appendChild(newTrObject);
                        }
                    }
                }
                xhr.send();
    
                document.getElementById("updateButton").onclick=function () {
                    var value = window.confirm("确认更新么?");
                    if(value){
                        document.getElementById("empForm").submit();
                    }
                }
    
            }
        </script>
    </head>
    <body>
        <form id="empForm" action="updateEmpByEmpno" method="post">
            <div align="center">
                <input id="updateButton" type="button" value="update">
            </div>
            <table id="empTable" border="1" align="center" width="80%">
                <tr>
                    <th></th><th>empno</th><th>ename</th><th>job</th><th>mgr</th><th>hiredate</th><th>sal</th><th>comm</th><th>deptno</th>
                </tr>
                <tbody id="empTbody">
    
                </tbody>
            </table>
        </form>
    </body>
    </html>