本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。
相关文章:将excel导入数据库
2018年4月1日,新增下载地址链接:点击打开源码下载地址
十分抱歉,这个链接地址没有在这篇文章上公布出来。希望不是很晚。
上篇文章的是这样的一个数据流向:
浏览器端打开上传页面,选择文件,上传,将excel上传到服务器,在服务器生成一个excel的文件,并写入Excel,再把excel文件读取存入mysql。
这一次做的优化是,可以再上传后,不再在excel中写入数据,也可以将文件写死,不会再在服务器占用空间。少了一步写入和读取的操作。直接对io流解析存储。
工程还是上篇文章的资源。
Upload.java
package com.app.action;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadBase;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.adtec.framework.common.util.JsonUtil;
import com.app.excel.InputToFile;
import com.app.excel.ReadExl_1;
import com.app.excel.SaveData2DB;
import com.app.po.Student_1;
import net.sf.json.JSONObject;
public class UpLoad extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
private final Logger logger = LoggerFactory.getLogger(this.getClass());
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("coming.......");
//得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
String savePath = this.getServletContext().getRealPath("/WEB-INF/upload");
//上传时生成的临时文件保存目录