`
weinan
  • 浏览: 38416 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java导入txt文件

阅读更多
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"));
	}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics