public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws FileNotFoundException, IOException { ImportElecForm fm = (ImportElecForm) form; FormFile fj=fm.getFile(); String fname=fj.getFileName().toLowerCase(); if (!(fname.endsWith(".txt"))){ request.setAttribute("msg","您必须上传txt格式的数据文件"); return (new ActionForward("/setting/DataAccess.jsp")); } if (!(fj.getFileName().length()>1)){ request.setAttribute("msg","您必须上传的文件不包含数据!"); return (new ActionForward("/setting/DataAccess.jsp")); } InputStream sin=fj.getInputStream(); InputStreamReader isr=new InputStreamReader(sin,"GBK"); BufferedReader bfr=new BufferedReader(isr); Connection con=null; ResultSet rs=null; HashMap courseIDs=new HashMap(); int TOTAL_COURSE=0; StringBuffer sb_failed=new StringBuffer(); StringBuffer sb_success=new StringBuffer(); Session session=null; try { session=HibernateUtil.openSession(); con=DBM.getConnection(); Statement stmt=con.createStatement(); //StringTokenizer tokenizer = new StringTokenizer(outputText, "\n"); String line=""; while((line = bfr.readLine()) != null ){ User user=null; String opcode=""; try{ StringTokenizer st = new StringTokenizer(line, ","); String username=st.nextToken().trim(); String password=st.nextToken().trim(); //String RealName=new String(st.nextToken().getBytes("ISO8859_1"),"GBK"); //String Sex=new String(st.nextToken().getBytes("ISO8859_1"),"GBK"); String RealName=st.nextToken(); String Sex=st.nextToken(); String StuFlag=st.nextToken().trim(); String ZhuangT=st.nextToken().trim(); //String BeiZ=new String(st.nextToken().getBytes("ISO8859_1"),"GBK"); String BeiZ=st.nextToken(); String v1=st.nextToken().trim(); String v2=st.nextToken().trim(); String v3=st.nextToken().trim(); String role=st.nextToken().trim(); String sql=""; String sql2=""; String sql3=""; boolean uexist=true; try { user=(User)session.load(User.class,username); } catch (HibernateException e) { user=new User(); uexist=false; user.setUsername(username); } user.setPassword(password); user.setRealName(RealName); user.setSex(Sex); user.setStuFlag(new Integer(StuFlag)); user.setZhuangT(new Integer(ZhuangT)); user.setBeiZ(BeiZ); if (StuFlag.equals("0")){ user.setWorkerId(v1); user.setKem(v2); user.setBum(v3); //sql="update users set password='"+password+"',realname='"+RealName+"',sex='"+Sex+"',stuflag="+StuFlag+",zhuangt="+ZhuangT+",beiz='"+BeiZ+"',workerid='"+v1+"',kem='"+v2+"',bum='"+v3+"' where username='"+username+"'"; }else{ user.setStuId(v1); user.setNianJdm(v2); Stuclass stuclass=(Stuclass)session.load(Stuclass.class,v3); user.setStuclass(stuclass); //user.setBanJdm(v3); //sql="update users set password='"+password+"',realname='"+RealName+"',sex='"+Sex+"',stuflag="+StuFlag+",zhuangt="+ZhuangT+",beiz='"+BeiZ+"',stuid='"+v1+"',nianjdm='"+v2+"',banjdm='"+v3+"' where username='"+username+"'"; } //System.out.println(sql); try { HibernateUtil.beginTransaction(); if (uexist){ opcode="[更新] "; session.update(user); }else { session.save(user); } HibernateUtil.commitTransaction(); }catch(Exception e){ e.printStackTrace(); } /* try { stmt.execute("insert into users (username) values('"+username+"');"); }catch(SQLException se){ opcode="[更新] "; //se.printStackTrace(); } stmt.execute(sql); */ try { sql3="delete from userrole where username='"+username+"'"; sql2="insert into userrole (username,roleid) values('"+username+"','"+role+"')"; stmt.execute(sql3); stmt.execute(sql2); }catch(SQLException se){ } //sb_success.append(new String(line.getBytes("ISO8859_1"),"GBK")); sb_success.append(opcode); sb_success.append(line); sb_success.append("<br>"); }catch(Exception e){ //sb_failed.append(new String(line.getBytes("ISO8859_1"),"GBK")); sb_failed.append(opcode); sb_failed.append(line); sb_failed.append("<br>"); e.printStackTrace(); } } }catch(Exception e){ e.printStackTrace(); }finally{ if (rs!=null) try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } if (con!=null) DBM.freeConnection(con); try { HibernateUtil.closeSession(); } catch (HibernateException e) { // TODO Auto-generated catch block e.printStackTrace(); } } fj.destroy(); try { Syslog log=new Syslog(); log.setCreateTime(EC.getDateTime()); log.setIp(request.getRemoteAddr()); log.setUsername((String)request.getSession().getAttribute("username")); log.setDetail(""); log.setLogType("导入用户"); EC.addLog(log); } catch (HibernateException e) { e.printStackTrace(); } request.setAttribute("success",sb_success.toString()); request.setAttribute("failed",sb_failed.toString()); return new ActionForward("/setting/ImportUserState.jsp"); //return (new ActionForward("/setting/DataAccess.jsp")); }