NutzCN Logo
问答 想做一个通用的EXCEL文件上传并写入数据库的函数,只有LIST的类和UPLOAD1的控件ID不一样,如何修改下面上述的相关参数,做个通用的函数
发布于 2326天前 作者 qq_09dec3d3 1221 次浏览 复制 上一个帖子 下一个帖子
标签:
 public Object updatefile1(@Param("upload1") TempFile f,@Param("currdate") String currdate,HttpSession session) throws IOException 
    {
        String returnstr="";
        InputStream in;
         try {
             in = f.getInputStream();
         } catch (IOException ex) {
             Logger.getLogger(zwdaAction.class.getName()).log(Level.SEVERE, null, ex);
             return "错误:读取文件错误,"+ex;
         }
        @SuppressWarnings("UnusedAssignment")
         List<ktgdzjqd> ktgDzjqd=null;
         
             dao.clear(ktgdzjqd.class,Cnd.where("drsj","=", currdate));   
            SimpleDateFormat currdate1=new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟  
    try
      {
          returnstr="文件导入数据库成功";  
          ktgDzjqd = J4E.fromExcel(in, ktgdzjqd.class,null);
            
           for(int count=0;count<=ktgDzjqd.size()/1000;count++)
           {
               dao.fastInsert(ktgDzjqd.subList(count*1000, (count+1)*1000));                   
           }
              dao.update(ktgdzjqd.class,Chain.make("drsj",currdate1.parse(currdate)),Cnd.where("drsj","is",null));
      }
    catch(ParseException ex)
    {
      returnstr="错误:文件选择错误或其他错误";  
    }
    finally
    {
           in.close();
    }         
               
      return returnstr;
    }  
11 回复

需上传7个文件,不想做重复劳动,每个文件不一样,LIST的内不一样,控件ID不一样

@Param("..") NutMap params

可以拿到全部参数,遍历找TempFile,就不受参数名称的限制了

那个List类怎么写?

来自炫酷的 NutzCN

传类名或者做个map对应关系

我在NUTMAP中能找到我要的参数,问题是:LIST<类名> sss=null; 类名在NUTMAP中String classname=nutMap1.getString("oname");
怎么弄,一直报错,无法编译通过

 List<Class.forName(classname)> obj;
         obj = Class.forName(classname).newInstance();

通不过

List<?> obj;
obj = Class.forName(classname).newInstance();
obj=通不过

不兼容的类型: CAP#1无法转换为List<?>
其中, CAP#1是新类型变量:
CAP#1从?的捕获扩展Object

从未使用分配的值

... 看来你的java基础很差啊...

Class<?> klass = Class.forName(className);
List<?> list = dao.query(klass, Cnd.where......);
dao.clear(klass ,Cnd.where("drsj","=", currdate));   

是的,半路出家,以前用C#,感觉JAVA和C#类似,玩玩JAVA,谢谢

添加回复
请先登陆
回到顶部