ssm之九 批量导入excel到数据库
来源:互联网 发布:百度域名注册服务费用 编辑:程序博客网 时间:2024/05/16 11:30
本案例承接以前的SSM整合系列,针对Oracle中的Dept表做操作,如果单击浏览,则进行批量导入;单击2则是单个导入。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>部门添加</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><script type="text/javascript" src="easyui/jquery-1.8.3.min.js"></script><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script type="text/javascript"><%-- function onload(){ var temp = '${errormsg}'; if(temp!=''){ alert(temp); } }--%> $(function(){ $("#subbtn").click(function(){ var deptNo = $(".deptNo").val(); if($.trim(deptNo)==''){ // alert("部门编号不能为空!"); $("#spana").html("部门编号不能为空!"); return; }else{ if(deptNo.length<2){ $("#spana").html("部门编号不能小于2位数!"); return; } } var dName = $("#dName").val(); if(dName==''){ // alert("部门编号不能为空!"); $("#spana").html("部门名称不能为空!"); return; } var loc = $("#loc").val(); if(loc==''){ // alert("部门编号不能为空!"); $("#spana").html("部门位置不能为空!"); return; } $("#form1").submit(); }); });</script> </head> <body onload="onload()"> <div align="center">部门添加 <c:if test="${errormsg}">1111</c:if> <span id="spana" style="color:#ff0000">${errormsg}</span> </div> <form action="dept/deptImp" method="post" enctype="multipart/form-data"> <div align="center"> <a href="jsp/deptinfo.xls">模板下载</a> <input type="file" name="mFile"><input type="submit" value="提交"> </div> </form> <form action="dept/add" method="post" id="form1"> <table border="1" align="center" width="80%"> <tr align="center"><td>部门编号</td><td> <input type="text" name="deptNo" class="deptNo"> </td> </tr> <tr align="center"><td>部门名称</td><td> <input type="text" name="dName" id="dName"> </td> </tr> <tr align="center"><td>部门位置</td><td> <input type="text" name="loc" id="loc"> </td> </tr> <tr align="center"><td colspan="2"> <input type="button" id="subbtn" value="提交"> </td></tr> </table> </form> </body></html>批量导入部门的控制器代码:
package com.aaa.ssm.controller;import java.io.IOException;import java.io.InputStream;import java.util.Enumeration;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import com.aaa.ssm.entity.Dept;import com.aaa.ssm.service.IDeptService;import com.aaa.ssm.util.PageData;import com.aaa.ssm.util.PageUtil;/** *@classname:DeptController.java *@discription:部门 控制器,负责与前后台及模型交互 * *@author:zhz *@createtime:2017-4-13上午09:09:16 *@version:1.0 */@Controller@RequestMapping("/dept")public class DeptController { @Autowiredprivate IDeptService service;/** * 部门列表方法 * @return */@RequestMapping("/list")public String list(Model model,Integer pageNo,HttpServletRequest request){/*System.out.println("URI地址:"+request.getRequestURI());Enumeration pNames=request.getParameterNames(); while(pNames.hasMoreElements()){ String name=(String)pNames.nextElement(); System.out.println("name:"+name+"="+request.getParameter(name)); }*/int pageSize=2;if(pageNo==null){pageNo=1;}Map map =new HashMap();map.put("start", (pageNo-1)*pageSize);map.put("end", pageNo*pageSize+1);PageData pageData = service.getList(map);int count = pageData.getCount();//总数量String pageString = new PageUtil(pageSize, pageNo, count, request).getPageString();model.addAttribute("deptList", pageData.getList());model.addAttribute("pageString", pageString);return "dept/list";}/** * 批量导入部门信息 * @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 blocke.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的代码:
package com.aaa.ssm.service;import java.util.List;import java.util.Map;import com.aaa.ssm.entity.Dept;import com.aaa.ssm.util.PageData;/** *@classname:IDeptService.java *@discription:部门业务类接口 * *@author:zhz *@createtime:2017-4-13上午09:06:39 *@version:1.0 */public interface IDeptService {/** * 根据部门编号获取部门对象 * @return */public Dept getById(int deptNo);/** * 部门列表 * @return */public PageData getList(Map map);/** * 部门添加 * @param dept */public void add(Dept dept);/** * 部门更新 * @param dept */public void update(Dept dept);/** * 部门删除 * @param deptNo */public void delete(int deptNo);}服务层实现类和以前的一样:
/** * 部门添加 */public void add(Dept dept) {// TODO Auto-generated method stubdao.add(dept);//System.out.println(1/0);}
扩展篇,该段示例代码只能实现,批量导入dept表中的数据到数据库,如何实现批量如何多个表呢?
阅读全文
0 0
- ssm之九 批量导入excel到数据库
- excel批量导入到数据库
- Excel批量导入到数据库
- excel数据批量导入到Mysql数据库
- java批量导入excel到Mysql数据库
- excel批量导入数据到数据库
- 基于SSM完成EXCEL表格数据导入到MySQL数据库
- Excel批量导入数据库
- excel批量导入数据库
- excel批量导入数据库
- Asp.net Excel批量导入数据到SqlServer数据库
- 从Excel文件读取数据批量导入到Mysql数据库
- 从Mysql数据库读取数据批量导入到Excel文件
- 读取Excel数据、批量导入到Oracle数据库
- java把excel数据批量导入到数据库
- JAVA Excel数据批量导入到SQL数据库
- 批量导入excel表格数据到数据库中
- excel导入到数据库
- (CDOJ 844 线段树区间最大连续和 )<线段树的各种姿势>
- 别老扯什么Hadoop了,你的数据根本不够大
- Centos 上软raid 介绍和配置
- Spring4.X + Spring MVC + Mybatis3 零配置应用开发框架搭建详解(4)
- 1015. 德才论 (25)
- ssm之九 批量导入excel到数据库
- 大赞 《战狼2》破40亿 刷新华语票房纪录
- 零拷贝问题
- JS DOM
- 【jzoj5250】【GDOI2018模拟8.11】【质数】
- struts.xml属性重名处理:关于<package><action><result>的name和namespace属性同名时struts2的处理
- Android基础_基础布局和基础控件(一)
- Eclipse下的SVN提交代码报错问题
- Spring4.X + Spring MVC + Mybatis3 零配置应用开发框架搭建详解(5)