Iterar HashMap, popular VO e persistir dados no banco de dados

0 respostas
I

Boa noite,

Estou tentando iterar meu HashMap e depois gravar cada linha deste HashMap no banco, mas não estou conseguindo fazer isto. Como poderia fazer?

Na classe Action, passo o map inteiro para um outro metodo no DAO gravar no banco, mas quando este map chega no metodo do DAO, nao consigo itera-lo para gravar cada linha no banco. Pensei entao na Action iterar este map e passar cada linha para um objeto q instancio e entao passar para o DAO e garvar no BD. Mas nao consigo fazer tb. Alguem tem alguma ideia de como posso fazer isto? pois este map é populado atraves de um request.getParameterNames de um formulario dinamico.

// Método para incluir itens da entrada de produtos por NF
	public ActionForward incluirProdutoEstoquePorNF(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		
	  
System.out.println("*** EstoqueAction: incluirProdutoEstoquePorNF ***");
		
		EstoqueDAO estoqueDAO = new EstoqueDAO();
		ActionMessages messages = new ActionMessages();
		EstoqueVO estoqueForm = (EstoqueVO) form;
		String opcao = request.getParameter("opcao");
		estoqueForm.setOpcao(opcao);

				
		if (estoqueForm.getOpcao().equals("CADASTRAR")){
		
			System.out.println("Entrou no IF...");
						

                    EstoqueVO estoqueVO = new EstoqueVO();   
		    HashMap map = new HashMap();   
		    Enumeration names = request.getParameterNames();   
			    
		    	while (names.hasMoreElements()) {   
			      
			    	String name = (String) names.nextElement();   
			       	map.put(name, request.getParameterValues(name));
			       	
			       	//System.out.println("map.keySet():" + map.keySet());
			       	//System.out.println("map.values():" + map.values());

			    }
		    	
		    	System.out.println("Map size: " + map.size());
		    	
		    	 Set<String> chaves = map.keySet();   
		         for (Iterator<String> iterator = chaves.iterator(); iterator.hasNext();)   
		         {   
		             String chave = iterator.next();
		             
		             if(chave != null)   
		                 
		            	 System.out.println(chave + map.get(chave));
		            	 System.out.println("Map size for: " + map.size());
		         		                 	
		         } 
		    	
			int flag = estoqueDAO.incluirProdutoEstoquePorNF(map);
				 
				 if (flag > 0){
					 
					 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("sucesso.fornecedorIncluidoComSucesso"));
					 saveMessages(request, messages);
					 
				 }else{
					 System.out.println("INCLUSÃO DE ITEM DE PRODUTO NÃO INCLUSA!");
				 }
				 
				 				 
			}
		
		//request.setAttribute("estoqueForm", estoqueVO);
		request.setAttribute("opcao", estoqueForm.getOpcao());
		return mapping.findForward(ConstantsUtil.FWD_SUCESSO);
			
	}

No while deste metodo, populo o map e no for, tento iterar o map para mostrar, mas so consigo ver os nomes dos parametros (chaves do map) os valores nao sao mostrados, aparecem codigos estranhos… neste for, pensei em popular meu objeto EstoqueVO e depois mandar para o DAO persistir os dados… mas não consigo…

O resultado do for é:

Map size: 6
opcao[Ljava.lang.String;@1de498
Map values: {opcao=[Ljava.lang.String;@1de498, codProduto2=[Ljava.lang.String;@8ae45a, codProduto1=[Ljava.lang.String;@95da38, method=[Ljava.lang.String;@29c204, qtdItem1=[Ljava.lang.String;@180cf2a, qtdItem2=[Ljava.lang.String;@df48c4}
Map size for: 6
codProduto2[Ljava.lang.String;@8ae45a
Map values: {opcao=[Ljava.lang.String;@1de498, codProduto2=[Ljava.lang.String;@8ae45a, codProduto1=[Ljava.lang.String;@95da38, method=[Ljava.lang.String;@29c204, qtdItem1=[Ljava.lang.String;@180cf2a, qtdItem2=[Ljava.lang.String;@df48c4}
Map size for: 6
codProduto1[Ljava.lang.String;@95da38
Map values: {opcao=[Ljava.lang.String;@1de498, codProduto2=[Ljava.lang.String;@8ae45a, codProduto1=[Ljava.lang.String;@95da38, method=[Ljava.lang.String;@29c204, qtdItem1=[Ljava.lang.String;@180cf2a, qtdItem2=[Ljava.lang.String;@df48c4}
Map size for: 6
method[Ljava.lang.String;@29c204
Map values: {opcao=[Ljava.lang.String;@1de498, codProduto2=[Ljava.lang.String;@8ae45a, codProduto1=[Ljava.lang.String;@95da38, method=[Ljava.lang.String;@29c204, qtdItem1=[Ljava.lang.String;@180cf2a, qtdItem2=[Ljava.lang.String;@df48c4}
Map size for: 6
qtdItem1[Ljava.lang.String;@180cf2a
Map values: {opcao=[Ljava.lang.String;@1de498, codProduto2=[Ljava.lang.String;@8ae45a, codProduto1=[Ljava.lang.String;@95da38, method=[Ljava.lang.String;@29c204, qtdItem1=[Ljava.lang.String;@180cf2a, qtdItem2=[Ljava.lang.String;@df48c4}
Map size for: 6
qtdItem2[Ljava.lang.String;@df48c4
Map values: {opcao=[Ljava.lang.String;@1de498, codProduto2=[Ljava.lang.String;@8ae45a, codProduto1=[Ljava.lang.String;@95da38, method=[Ljava.lang.String;@29c204, qtdItem1=[Ljava.lang.String;@180cf2a, qtdItem2=[Ljava.lang.String;@df48c4}
Map size for: 6

Obrigado…

Criado 12 de fevereiro de 2009
Respostas 0
Participantes 1