文件上传与数据导入

原创 2004年08月04日 16:36:00

public void doImport(Context ctx)   throws ActionException {
  String tableName = "imei_black_list";
  if (JString.isNull(tableName))
   return;
  Table t = new Table(tableName);
  List fileItems = (List) ctx.getRequest().getAttribute("form-data");
  if (fileItems == null)
   return;
  Iterator iter = fileItems.iterator();
  Hashtable results = new Hashtable();
  while (iter.hasNext()) {
   FileItem item = (FileItem) iter.next();
   if (item.isFormField())
    continue;
   String tmp = getTempFile();
   List records;
   try {
    item.write(tmp);
    //导入数据库
    records = FileRegister.getHandler(item.getName()).process(tmp);
    int uc = TableUtil.load(t, records);
    log(ctx.getRequest(), "数据维护:上传数据到" + t.getLabel());
   } catch (Exception e) {
    e.printStackTrace();
   } finally {
    records = null;
   }
  }

 }

/**
  * 加载数据到指定的表中
  * @param t
  * @param records
  * @return
  * @throws SQLException
  */
 public static int load(Table t, List records) throws Exception
 {  
  if(t==null || records==null || records.size()==0)
   return 0;
  List fields = t.getFields();
  if(fields == null){
   fillTable(t);
   fields = t.getFields();
  }
  String sql = getInsertSQL(t);
  Connection conn = null;
  PreparedStatement ps = null;
  Field field;
  try{
   conn = getConnection();
   conn.setAutoCommit(false);
   ps = conn.prepareStatement(sql);
   for(int rc=0;rc<records.size();rc++){
    for(int i=1;i<=fields.size();i++){
     field = (Field)fields.get(i-1);
     int type = field.getFdType();
     String value = (String)((Record)records.get(rc)).getValue(i-1);
     ps.setObject(i, ObjectUtils.getSqlObject(type,value));
    }
    ps.executeUpdate();
   }
   conn.commit();
  }catch(Exception e){
   try{
    conn.rollback();
   }catch(Exception ee){}
   throw e;
  }finally{
   try{
    conn.setAutoCommit(true);
   }catch(Exception e){}
   close(null,ps,conn);
  }
  
  return records.size();
 }
 

今天做项目的时候学习到一种新的上传文件,和导入数据库的写法,现拿出来分享一下。

批量导入(单文件的文件上传 + 解析上传的csv文件 ,导入至数据库 ,反馈信息)

freemaker 部分 批量导入 导入信息反馈 : ${x!} @RequestMapping(value = { "/leadin/lot/save" }...
  • maple980326
  • maple980326
  • 2016年07月05日 10:59
  • 2357

将本地文本文件上传到HDFS上,然后导入hive/impala对应表中

1.本地文本文件上传前的准备 将文本保存为"uft-8"格式,并用"|"进行字段间的分割(个人习惯,可以选用其它符号,但要避免和编程语言产生冲突)。 2.将文本文件通过Xshell上传到HDFS上 (...
  • www_sg_com
  • www_sg_com
  • 2017年07月07日 14:05
  • 1497

MVC4.0 上传Excel并存入数据库

这里的这个功能实现在WebForm很好实现,上传阶段简单的一个FileUoLoad控件就搞定了,什么取值,什么上传都是浮云,微软都帮我们封装好了,我们只需要一拖一拽就OK了,但这些在MVC中是不行的!...
  • SUNZHIJUN100
  • SUNZHIJUN100
  • 2015年01月21日 18:48
  • 6943

文件上传及数据导入数据库

  • 2014年02月20日 22:14
  • 1.57MB
  • 下载

SpringMVC文件上传 Excle文件 Poi解析 验证 去重 并批量导入 MYSQL数据

Seven_OverLoad 无念7狱恋 博客园首页新随笔联系订阅管理 SpringMVC文件上传 Excle文件 Poi解析 验证 去重 并批量导入 MYSQL数据库 ...
  • u010456982
  • u010456982
  • 2016年09月12日 10:33
  • 1081

Qt实现Post文件上传+QFTP客户端功能实现+JOSN解析+字符串数据添加到QTableView显示

  • 2017年05月12日 09:41
  • 3.31MB
  • 下载

张孝祥09年Struts视频—01文件上传的网页设置与数据格式分析

  • 2009年05月27日 07:33
  • 14.79MB
  • 下载

spring mvc 初始环境搭建,前后台数据的交互,文件上传

  • 2017年03月27日 19:56
  • 614KB
  • 下载

struts2 action接收文件上传数据处理

转自http://www.jb51.net/article/45170.htm 这篇文章主要介绍了struts2单个文件上传的两种实现方式,有需要的朋友可以参考一下 通过2种方式模拟单个文件上传,效...
  • gaohuimina
  • gaohuimina
  • 2016年10月19日 15:04
  • 3033

连接池、数据源、文件上传

java连接池 首先在tomcat中的conf中的context.xml文件中找到 中加入代码 导入的包 jsp中的代码     Context ctx= ...
  • old_white_code
  • old_white_code
  • 2018年01月03日 12:57
  • 11
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件上传与数据导入
举报原因:
原因补充:

(最多只允许输入30个字)