Como Iterar HashMap para fazer insert dos dados no Banco de Dados

Bom dia amigos,

Gostaria de saber como faço para Iterar um HashMap na classe DAO para fazer os insert dos dados no Banco de Dados:

Classe Action onde populo o HashMap e depois seto ele para a classe DAO fazer os inserts, mas não consigo Iterar para fazer o insert dos dados no banco. como posso fazer isto?

Tenho uma JSP que tem um Javascript que adiciona linhas no formulario dinamicamente, ai na Action eu recupero todos os parametros e jogo para um HashMap… Estou usando Struts 1.3.8.

Método da classe EstoqueAction:

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);

		//ArrayList <EstoqueVO> lEstoqueProduto = new ArrayList<EstoqueVO>();
		
		if (estoqueForm.getOpcao().equals("CADASTRAR")){
		
			System.out.println("Entrou no IF...");
						
			//HttpServletRequest request = ...;   
			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));
			    }   
			 
			//BeanUtils.populate(estoqueVO, map);
			//request.setAttribute("estoqueForm", estoqueVO);
		       		    
		    System.out.println("Map size: " + 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);
			
	}

Metodo da classe EstoqueDAO:

public int incluirProdutoEstoquePorNF(HashMap map) throws SQLException {
		
		System.out.println("*** EstoqueDAO: incluirProdutoEstoquePorNF ***");
		
		int flag = 0;
		
		System.out.println("map no DAO:" + map.size());
		
		try {
			String query = 		"INSERT INTO " +
					"				TBL_MOVIMENTACAO_ESTOQUE (" +
									" COD_PRODUTO, " +
									" QTD_ITEM) " +
									" VALUES(" +
								
									map.size();
									//map.getItemEstoqueVO().getCodProduto() 	+"','"+
									//map.getItemEstoqueVO().getQtdItem() 	+"')";
									
				
			
			xConn = new XConnection();
			flag = xConn.atualiza(query);
						
			// flag = 1 (INSERT OK) 
			if(flag == 1) {
				// Obter id gerado automaticamente por AUTO_INCREMENT
				query = "SELECT LAST_INSERT_ID()";
				xConn.rs = xConn.seleciona(query);
				xConn.rs.first();
				flag = xConn.rs.getInt(1);
			}
			xConn.fechaConexao();
			return flag;

		} catch(SQLException e) {
			System.out.println("ERROR incluirProdutoEstoquePorNF: "+e);
			xConn.fechaConexao();
			return flag;			
		} catch(Exception e) {
			System.out.println("ERROR incluirProdutoEstoquePorNF: "+e);
			xConn.fechaConexao();
			return flag;
		}	
		
	}

Vlw amigos…

Vlw…

Segue um exemplo

        Map<String, String> map = new HashMap<String, String>();
        map.put("1","opa 1");
        map.put("2","opa 2");
        map.put("3","opa 3");
        map.put("4","opa 4");
        map.put("5","opa 5");
        
        for (String s : map.values() ) {
            System.out.println(s);
        }
        
        for (String s : map.keySet()) {
            System.out.println(s);
        }

Amigo thiago.correa, entendi mais ou menos, como poderia aplicar seu exemplo no metodo de Insert no BD??

A minha esta em mapear os valores que estao no map para fazer os inserts dos dados nas colunas corretas do BD… Como poderia fazer isto??

Digo isto, porq o map é populado com varios parametros, tipo:


codigo1=100&qtd1=200&codigo2=300&qtd2=400&method=incluirProdutoEstoquePorNF&opcao=CADASTRAR  

Na tabela do banco tem as colunas codigo e qtd… Como vou mapear os valores dos parametros codigo1 e qtd1 para gravar corretamente no banco… ??

Muito Obrigado…

Alguém tem alguma sugestão?

Vlw…