ssm之九 批量导入excel到数据库

举报
tea_year 发表于 2021/12/29 22:44:28 2021/12/29
【摘要】 JAVA就业套餐课:https://edu.csdn.net/combo/detail/1230 本案例承接以前的SSM整合系列,针对Oracle中的Dept表做操作,如果单击浏览,则进行批量导入;单击2则是单个导入。   <%@ page language="java" import="java.util.*" ...

JAVA就业套餐课:https://edu.csdn.net/combo/detail/1230

本案例承接以前的SSM整合系列,针对Oracle中的Dept表做操作,如果单击浏览,则进行批量导入;单击2则是单个导入。

 


  
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. <base href="<%=basePath%>">
  11. <title>部门添加</title>
  12. <meta http-equiv="pragma" content="no-cache">
  13. <meta http-equiv="cache-control" content="no-cache">
  14. <meta http-equiv="expires" content="0">
  15. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  16. <meta http-equiv="description" content="This is my page">
  17. <script type="text/javascript" src="easyui/jquery-1.8.3.min.js"></script>
  18. <!--
  19. <link rel="stylesheet" type="text/css" href="styles.css">
  20. -->
  21. <script type="text/javascript"><%--
  22. function onload(){
  23. var temp = '${errormsg}';
  24. if(temp!=''){
  25. alert(temp);
  26. }
  27. }
  28. --%>
  29. $(function(){
  30. $("#subbtn").click(function(){
  31. var deptNo = $(".deptNo").val();
  32. if($.trim(deptNo)==''){
  33. // alert("部门编号不能为空!");
  34. $("#spana").html("部门编号不能为空!");
  35. return;
  36. }else{
  37. if(deptNo.length<2){
  38. $("#spana").html("部门编号不能小于2位数!");
  39. return;
  40. }
  41. }
  42. var dName = $("#dName").val();
  43. if(dName==''){
  44. // alert("部门编号不能为空!");
  45. $("#spana").html("部门名称不能为空!");
  46. return;
  47. }
  48. var loc = $("#loc").val();
  49. if(loc==''){
  50. // alert("部门编号不能为空!");
  51. $("#spana").html("部门位置不能为空!");
  52. return;
  53. }
  54. $("#form1").submit();
  55. });
  56. });
  57. </script>
  58. </head>
  59. <body onload="onload()">
  60. <div align="center">部门添加 <c:if test="${errormsg}">1111</c:if> <span id="spana" style="color:#ff0000">${errormsg}</span> </div>
  61. <form action="dept/deptImp" method="post" enctype="multipart/form-data">
  62. <div align="center"> <a href="jsp/deptinfo.xls">模板下载</a> <input type="file" name="mFile"><input type="submit" value="提交"> </div>
  63. </form>
  64. <form action="dept/add" method="post" id="form1">
  65. <table border="1" align="center" width="80%">
  66. <tr align="center"><td>部门编号</td><td> <input type="text" name="deptNo" class="deptNo"> </td> </tr>
  67. <tr align="center"><td>部门名称</td><td> <input type="text" name="dName" id="dName"> </td> </tr>
  68. <tr align="center"><td>部门位置</td><td> <input type="text" name="loc" id="loc"> </td> </tr>
  69. <tr align="center"><td colspan="2"> <input type="button" id="subbtn" value="提交"> </td></tr>
  70. </table>
  71. </form>
  72. </body>
  73. </html>

批量导入部门的控制器代码:

 

 


  
  1. package com.aaa.ssm.controller;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.util.Enumeration;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import javax.servlet.http.HttpServletRequest;
  9. import jxl.Cell;
  10. import jxl.Sheet;
  11. import jxl.Workbook;
  12. import jxl.read.biff.BiffException;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Controller;
  15. import org.springframework.ui.Model;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.RequestParam;
  18. import org.springframework.web.bind.annotation.ResponseBody;
  19. import org.springframework.web.multipart.MultipartFile;
  20. import com.aaa.ssm.entity.Dept;
  21. import com.aaa.ssm.service.IDeptService;
  22. import com.aaa.ssm.util.PageData;
  23. import com.aaa.ssm.util.PageUtil;
  24. /**
  25. *@classname:DeptController.java
  26. *@discription:部门 控制器,负责与前后台及模型交互
  27. *
  28. *@author:zhz
  29. *@createtime:2017-4-13上午09:09:16
  30. *@version:1.0
  31. */
  32. @Controller
  33. @RequestMapping("/dept")
  34. public class DeptController {
  35. @Autowired
  36. private IDeptService service;
  37. /**
  38. * 部门列表方法
  39. * @return
  40. */
  41. @RequestMapping("/list")
  42. public String list(Model model,Integer pageNo,HttpServletRequest request){
  43. /*System.out.println("URI地址:"+request.getRequestURI());
  44. Enumeration pNames=request.getParameterNames();
  45. while(pNames.hasMoreElements()){
  46. String name=(String)pNames.nextElement();
  47. System.out.println("name:"+name+"="+request.getParameter(name));
  48. }*/
  49. int pageSize=2;
  50. if(pageNo==null){
  51. pageNo=1;
  52. }
  53. Map map =new HashMap();
  54. map.put("start", (pageNo-1)*pageSize);
  55. map.put("end", pageNo*pageSize+1);
  56. PageData pageData = service.getList(map);
  57. int count = pageData.getCount();//总数量
  58. String pageString = new PageUtil(pageSize, pageNo, count, request).getPageString();
  59. model.addAttribute("deptList", pageData.getList());
  60. model.addAttribute("pageString", pageString);
  61. return "dept/list";
  62. }
  63. /**
  64. * 批量导入部门信息
  65. * @param mFile
  66. * @return
  67. * @throws IOException
  68. * @throws BiffException
  69. */
  70. @RequestMapping("/deptImp")
  71. public String deptImport(@RequestParam MultipartFile mFile) throws IOException, BiffException{
  72. //获取文件流
  73. InputStream inputStream = mFile.getInputStream();
  74. //利用JAR提供的Workbook类读取文件
  75. Workbook workbook = Workbook.getWorkbook(inputStream);
  76. //获取工作薄
  77. Sheet sheet = workbook.getSheet(0);
  78. //获取总行数
  79. int rows = sheet.getRows();
  80. //获取总列数
  81. int cells = sheet.getColumns();
  82. //循环读取数据
  83. Dept dept = null;
  84. for(int i=1;i<rows;i++){
  85. dept = new Dept();
  86. Cell[] cell=sheet.getRow(i);
  87. dept.setDeptNo(Integer.valueOf(cell[0].getContents()));
  88. dept.setdName(cell[1].getContents());
  89. dept.setLoc(cell[2].getContents());
  90. service.add(dept);
  91. /*for(int j=0;j<cells;j++){
  92. System.out.println(cell[j].getContents());
  93. }*/
  94. }
  95. return "redirect:list";
  96. }
  97. /**
  98. * 返回DeptJson
  99. * @return
  100. */
  101. @ResponseBody
  102. @RequestMapping("/deptJson")
  103. public Object deptJson(){
  104. Map map =new HashMap();
  105. map.put("start", 0);
  106. map.put("end", 100);
  107. PageData pageData = service.getList(map);
  108. int count = pageData.getCount();//总数量
  109. List<Dept> deptList = pageData.getList();
  110. Map mapJson =new HashMap();
  111. mapJson.put("total", count);
  112. mapJson.put("rows", deptList);
  113. return mapJson;
  114. }
  115. /**
  116. * 跳转添加方法
  117. * @return
  118. */
  119. @RequestMapping("/toAdd")
  120. public String toAdd(){
  121. return "dept/add";
  122. }
  123. /**
  124. * 添加方法
  125. * @param dept
  126. * @return
  127. */
  128. @RequestMapping("/add")
  129. public String add(Dept dept,Model model){
  130. try {
  131. service.add(dept);
  132. return "redirect:list";
  133. } catch (Exception e) {
  134. // TODO Auto-generated catch block
  135. e.printStackTrace();
  136. model.addAttribute("errormsg", "添加部门失败!");
  137. return "dept/add";
  138. }
  139. }
  140. /**
  141. * 跳转部门更新
  142. * @return
  143. */
  144. @RequestMapping("/toUpdate")
  145. public String toUpdate(Model model,int deptNo){
  146. Dept dept = service.getById(deptNo);
  147. model.addAttribute("dept", dept);
  148. return "dept/update";
  149. }
  150. /**
  151. * 部门更新
  152. * @param dept
  153. * @return
  154. */
  155. @RequestMapping("/update")
  156. public String update(Dept dept){
  157. service.update(dept);
  158. return "redirect:list";
  159. }
  160. /**
  161. * 部门删除
  162. * @return
  163. */
  164. @RequestMapping("/del")
  165. public String delete(Integer deptNo){
  166. service.delete(deptNo);
  167. return "redirect:list";
  168. }
  169. }
/** * 批量导入部门信息 * @param mFile * @return * @throws IOException * @throws BiffException */ @RequestMapping("/deptImp") public String deptImport(@RequestParam MultipartFile mFile) throws IOException, BiffException{ //获取文件流 InputStream inputStream = mFile.getInputStream(); //利用JAR提供的Workbook类读取文件 Workbook workbook = Workbook.getWorkbook(inputStream); //获取工作薄 Sheet sheet = workbook.getSheet(0); //获取总行数 int rows = sheet.getRows(); //获取总列数 int cells = sheet.getColumns(); //循环读取数据 Dept dept = null; for(int i=1;i<rows;i++){ dept = new Dept(); Cell[] cell=sheet.getRow(i); dept.setDeptNo(Integer.valueOf(cell[0].getContents())); dept.setdName(cell[1].getContents()); dept.setLoc(cell[2].getContents()); service.add(dept); /*for(int j=0;j<cells;j++){ System.out.println(cell[j].getContents()); }*/ } return "redirect:list"; } /** * 返回DeptJson * @return */ @ResponseBody @RequestMapping("/deptJson") public Object deptJson(){ Map map =new HashMap(); map.put("start", 0); map.put("end", 100); PageData pageData = service.getList(map); int count = pageData.getCount();//总数量 List<Dept> deptList = pageData.getList(); Map mapJson =new HashMap(); mapJson.put("total", count); mapJson.put("rows", deptList); return mapJson; } /** * 跳转添加方法 * @return */ @RequestMapping("/toAdd") public String toAdd(){ return "dept/add"; } /** * 添加方法 * @param dept * @return */ @RequestMapping("/add") public String add(Dept dept,Model model){ try { service.add(dept); return "redirect:list"; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); model.addAttribute("errormsg", "添加部门失败!"); return "dept/add"; } } /** * 跳转部门更新 * @return */ @RequestMapping("/toUpdate") public String toUpdate(Model model,int deptNo){ Dept dept = service.getById(deptNo); model.addAttribute("dept", dept); return "dept/update"; } /** * 部门更新 * @param dept * @return */ @RequestMapping("/update") public String update(Dept dept){ service.update(dept); return "redirect:list"; } /** * 部门删除 * @return */ @RequestMapping("/del") public String delete(Integer deptNo){ service.delete(deptNo); return "redirect:list"; } }


服务层Service的代码:

 

 


  
  1. package com.aaa.ssm.service;
  2. import java.util.List;
  3. import java.util.Map;
  4. import com.aaa.ssm.entity.Dept;
  5. import com.aaa.ssm.util.PageData;
  6. /**
  7. *@classname:IDeptService.java
  8. *@discription:部门业务类接口
  9. *
  10. *@author:zhz
  11. *@createtime:2017-4-13上午09:06:39
  12. *@version:1.0
  13. */
  14. public interface IDeptService {
  15. /**
  16. * 根据部门编号获取部门对象
  17. * @return
  18. */
  19. public Dept getById(int deptNo);
  20. /**
  21. * 部门列表
  22. * @return
  23. */
  24. public PageData getList(Map map);
  25. /**
  26. * 部门添加
  27. * @param dept
  28. */
  29. public void add(Dept dept);
  30. /**
  31. * 部门更新
  32. * @param dept
  33. */
  34. public void update(Dept dept);
  35. /**
  36. * 部门删除
  37. * @param deptNo
  38. */
  39. public void delete(int deptNo);
  40. }

服务层实现类和以前的一样:

 

 


  
  1. /**
  2. * 部门添加
  3. */
  4. public void add(Dept dept) {
  5. // TODO Auto-generated method stub
  6. dao.add(dept);
  7. // System.out.println(1/0);
  8. }


扩展篇,该段示例代码只能实现,批量导入dept表中的数据到数据库,如何实现批量如何多个表呢?

 

 

 

 

 

文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。

原文链接:aaaedu.blog.csdn.net/article/details/77124646

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。