Problemas IF ResultSet [RESOLVIDO]

4 respostas
M

Pessoal, boa tarde, estou com problemas em uma classe, estou tentando fazer o seguinte, caso a situacao do cliente seja consulente, pegar o idcontato da tabela contato referente ao nomecompleto do consulente, caso ele ja esteja cadastrado no sistema, pegar, caso nao, adicionar o contato e pegar o idcontato e adicionar a tabela pgto, caso nao seja consulente, pagar normalmente a matricula, porem ha uns erros, funciona normalmente se o cliente ja estiver cadastrado no sistema, se nao estiver cadastrado há o erro, segue o codigo:

public void pagaDiversos(Contato contato) throws Exception {
		
		  String sql3 = "select idorigem from origemPagamento where origemPagamento = ?";
		    PreparedStatement stmt3;
		    stmt3 = connection.prepareStatement(sql3);
		    stmt3.setString(1, contato.getPagamento().getOrigemPagamento());
		    
		    ResultSet rs3 = stmt3.executeQuery();
		    
		    	if(rs3.next()){
		    		contato.getPagamento().setIdOrigemPagamento(rs3.getInt("idorigem"));
		    	}
		
		PreparedStatement stmt;
		
		
				if(contato.getSituacao().equals("Consulente")){
				
				//PreparedStatement stmt5 = null;
				String sql1 = "select idcontato from contato where nomecompleto= ?";
					
					stmt = connection.prepareStatement(sql1);
					stmt.setString(1, contato.getNomecompleto());
					stmt.execute();
					
					ResultSet rs1 = stmt.executeQuery();
						
						if(rs1 != null) {
							
							String sql4 = "select idcontato from contato where nomecompleto =?";
							stmt = connection.prepareStatement(sql4);
							stmt.setString(1, contato.getNomecompleto());
				        
							ResultSet rs4 = stmt.executeQuery();
				        		if(rs4.next()){
					        
				        			contato.setId_contato(rs4.getInt("idcontato"));
				        		}
												
				        		String queryMensalidade = "Insert into pgto values(null,?,null,?,?,?,?)"; 
				        		stmt = connection.prepareStatement(queryMensalidade);
			  	  	
				        		stmt.setInt(1, contato.getId_contato());
				        		stmt.setInt(2, contato.getPagamento().getIdOrigemPagamento());
				        		stmt.setDate(3,  new Date(contato.getPagamento().getDt_pagamento().getTimeInMillis()));
				        		stmt.setFloat(4, contato.getPagamento().getValorpagamento());
				        		stmt.setString(5, contato.getPagamento().getFormaPagamento());
				        		stmt.execute();   
				        		stmt.clearParameters();
							
							
							
						} else {
							System.out.println(contato.getNomecompleto());
							String sql2 = "insert into contato values(null,'0',?,null,null,null,null,null,null,null,null,?)";
							stmt = connection.prepareStatement(sql2);
							stmt.setString(1, contato.getNomecompleto());
							stmt.setString(2, contato.getSituacao());
							stmt.execute();
		        
							String sql4 = "select idcontato from contato where nomecompleto =?";
							stmt = connection.prepareStatement(sql4);
							stmt.setString(1, contato.getNomecompleto());
		        
							ResultSet rs4 = stmt.executeQuery();
								if(rs4.next()){
			        
									contato.setId_contato(rs4.getInt("idcontato"));
								}
										
								String queryMensalidade = "Insert into pgto values(null,?,null,?,?,?,?)"; 
								stmt = connection.prepareStatement(queryMensalidade);
	  	  	
								stmt.setInt(1, contato.getId_contato());
								stmt.setInt(2, contato.getPagamento().getIdOrigemPagamento());
								stmt.setDate(3,  new Date(contato.getPagamento().getDt_pagamento().getTimeInMillis()));
								stmt.setFloat(4, contato.getPagamento().getValorpagamento());
								stmt.setString(5, contato.getPagamento().getFormaPagamento());
								stmt.execute();   
								stmt.clearParameters();
							
						}
					} else {
						System.out.println(contato.getNomecompleto());

						String queryMensalidade = "Insert into pgto values(null,?,null,?,?,?,?)"; 
						stmt = connection.prepareStatement(queryMensalidade);
						stmt.setInt(1, contato.getId_contato());
						stmt.setInt(2, contato.getPagamento().getIdOrigemPagamento());
						stmt.setDate(3,  new Date(contato.getPagamento().getDt_pagamento().getTimeInMillis()));
						stmt.setFloat(4, contato.getPagamento().getValorpagamento());
						stmt.setString(5, contato.getPagamento().getFormaPagamento());
						stmt.execute();   
						stmt.clearParameters();
				}
	}

agora o jsp

<script language="JavaScript"> 
function pergunta(){ 
    if (confirm('Confirma Pagamento??')){ 
       document.cadastro.submit(); 
    } 
} 
</script>
 
<script type="text/javascript">
    $(document).ready(function(){
      $("#button_busca").click(function () {
		$("form").submit(function () { return false; });
		var matricula = $("#matricula").val();
		$.ajax({
			type: "POST",
			url: "/SistemaMensalidades/selecDiversos",
			data: "matricula="+matricula,
			success: function(html){
				$("body").html(html);
			}
		});
	});
    });
</script>
    

    <form>
	<fieldset>
	    <legend>Pagamentos Diversos</legend>
	    <dl>
            <dt><label for="matricula">Digite a Matricula</label>
            <input type="text" name="matricula" id="matricula" />
            <button id="button_busca">Busca</button>
            </dt>
            </dl>
	</fieldset>
    </form>
    
<div id="body">
<form id="cadastro" name="cadastro" method="post" action="diversos">
      
      <p>
    	<input type="hidden" name="contato.id_contato" id="contato.id_contato" value="${contato.id_contato}"/>
          <label>Matrícula:
          
            <input name="contato.matricula" type="text" id="contato.matricula" size="5" value="${contato.matricula}"/>
          </label>
          <label>Situação:</label>
		  <select id="contato.situacao" name="contato.situacao">
		    <option>${contato.situacao}</option>
		    <option>Ativo</option>
		    <option>Suspenso</option>
		    <option>Consulente</option>		
	      </select>
        </p>
        <p>
          <br/><label>Nome Completo:</label>
         
          <input name="contato.nomecompleto" type="text" id="contato.nomecompleto" value="${contato.nomecompleto}" /><p>

e o stacktrace

WARNING: Error setting expression 'contato.id_contato' with value '[Ljava.lang.String;@bdb375'
ognl.MethodFailedException: Method "setId_contato" failed for object br.com.sistema.Classes.Contato@9c22ff [java.lang.NoSuchMethodException: br.com.sistema.Classes.Contato.setId_contato([Ljava.lang.String;)]
	at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1285)
	at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1474)
	at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
	at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
	at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:27)
	at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2245)
	at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:636)
Caused by: java.lang.NoSuchMethodException: br.com.sistema.Classes.Contato.setId_contato([Ljava.lang.String;)
	at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1226)
	... 66 more
/-- Encapsulated exception ------------\
java.lang.NoSuchMethodException: br.com.sistema.Classes.Contato.setId_contato([Ljava.lang.String;)
	at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1226)
	at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1474)
	at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
	at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
	at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:27)
	at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2245)
	at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
	at ognl.SimpleNode.setValue(SimpleNode.java:301)
	at ognl.ASTChain.setValueBody(ASTChain.java:227)
	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
	at ognl.SimpleNode.setValue(SimpleNode.java:301)
	at ognl.Ognl.setValue(Ognl.java:737)
	at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:209)
	at com.opensymphony.xwork2.ognl.OgnlValueStack.trySetValue(OgnlValueStack.java:173)
	at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:160)
	at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:151)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:288)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:199)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:636)
\--------------------------------------/
08/11/2010 12:19:08 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
WARNING: Error setting expression 'contato.matricula' with value '[Ljava.lang.String;@51064e'
ognl.MethodFailedException: Method "setMatricula" failed for object br.com.sistema.Classes.Contato@9c22ff [java.lang.NoSuchMethodException: br.com.sistema.Classes.Contato.setMatricula([Ljava.lang.String;)]
	at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1285)
	at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1474)
	at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
	at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
	at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:27)
	at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2245)
	at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
	at ognl.SimpleNode.setValue(SimpleNode.java:301)
	at ognl.ASTChain.setValueBody(ASTChain.java:227)
	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:636)
Caused by: java.lang.NoSuchMethodException: br.com.sistema.Classes.Contato.setMatricula([Ljava.lang.String;)
	at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1226)
	... 66 more
/-- Encapsulated exception ------------\
java.lang.NoSuchMethodException: br.com.sistema.Classes.Contato.setMatricula([Ljava.lang.String;)
	at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1226)
	at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1474)
	at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
	at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
	at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:27)
	at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2245)
	at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
	at ognl.SimpleNode.setValue(SimpleNode.java:301)
	at ognl.ASTChain.setValueBody(ASTChain.java:227)
	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
	at ognl.SimpleNode.setValue(SimpleNode.java:301)
	at ognl.Ognl.setValue(Ognl.java:737)

4 Respostas

F

Cara, você já ouviu falar de hibernate? ( http://www.hibernate.org/ ), com ele você pode abstrair todo o SQL, tornando muito mais fácil tanto o desenvolvimento quanto o teste. Tem bastantes tutoriais na grande rede que podem lhe ajudar.

M

ola Figo, obrigado pela dica, eu já ouvi sim, mas como sou iniciante, terminei o curso java na caelum a 3 meses, entao estou treinando agora para depois quando tiver mais experiencia na area de programação, poder estudar outros frameworks, porque se eu estudar tudo agora, vai embolar mais doq ja estou embolado, mas ja pretendo mudar no futuro.

abraço

M

ajuda ae galera, se possivel!

M

JÁ RESOLVI, OBRIGADO PELA AJUDA, 7 TOPICO SEM AJUDA NENHUMA

Criado 8 de novembro de 2010
Ultima resposta 9 de nov. de 2010
Respostas 4
Participantes 2