Fórum Excluindo apenas um registro com JDBC #560201

12/08/2016

0

Galera eu peguei este Método no artigo do Devmedia: Manipulando dados com JDBC em Java, mais estou tendo dificuldade em utilizar

//Excluindo apenas um registro com JDBC
public boolean deletarItem(Item item) {
         try {
             Statement stmt = con.createStatement();  
           
             String sql = "DELETE FROM item WHERE cod_id='a int'";  
           
             int deleteCount = stmt.executeUpdate(sql);  

             sql = "DELETE FROM item WHERE cod_id=?";  
             PreparedStatement pstmt = con.prepareStatement(sql);  

             pstmt.setInt(1, item.getCod_id());

             deleteCount = pstmt.executeUpdate();
             return true;
     } catch (SQLException e) {
    	 return false;
         } 
    }

A data table que possui os items a serem excluidos:
<p:dataTable var="item" value="#{itemMB.items}" rows="8"
			paginator="true" paginatorPosition="bottom">

			<p:column style="width: 40px">
				<h:outputText value="#{item.cod_id}" />
			</p:column>

			<p:column headerText="Nome">
				<h:outputText value="#{item.nome_item}" />
			</p:column>

			<p:column headerText="Ref" style="width: 25px">
				<h:outputText value="#{item.refinacao}" />
			</p:column>

			<p:column headerText="Vendedor" style="width: 80px; ">
				<h:outputLink id="vend" value="#">
					<h:outputText value="#{item.vendedor}" />
				</h:outputLink>
				<p:tooltip id="toolTipGrow" for="vend"
					value="Clique para ver o contato do vendedor" showEffect="clip"
					hideEffect="explode" position="top" />

			</p:column>

			<p:column headerText="Decrição" style="width: 80px">
				<h:outputText value="#{item.descricao}" />
			</p:column>

			<p:column headerText="D.registro" style="width: 70px">
				<h:outputText value="#{item.dataCadastro}" />
			</p:column>

			<p:column style="width: 25px">
				<p:commandButton id="selectButton" update=":cadastrados:display"
					onclick="PF('dlgx').show();" icon="ui-icon-trash" title="Cancelar Venda">
					<f:setPropertyActionListener value="#"
						target="#{itemMB.selecionarItem}" />
				</p:commandButton>
			</p:column>


		</p:dataTable>

		<p:dialog header="Cancelar Venda" widgetVar="dlgx" resizable="false"
			showEffect="fade" hideEffect="explode" modal="true">
			<h:panelGrid id="display" columns="1" cellpadding="4"
				style="margin:0 auto; font-family: Nunito; font-size: 14px;">
				<h:outputText value="Tem certeza que deseja cancelar a venda do item?"/>
				<h:outputText value="#{itemMB.selecionarItem.nome_item} (#{itemMB.selecionarItem.cod_id})"/>
				</h:panelGrid>
				<p:commandButton id="remover" value="Sim" styleClass="botaoMedio"
					action="#{itemMB.deletarItem}" update="cadastrados" />

				<p:commandButton value="Não"
					styleClass="botaoMedio" style="margin-left: 10px"
					onclick="PF('dlgx').hide()" />
			
		</p:dialog>
	</h:form>


Acredito que o erro ocorra por que o item.getCod_id() não possui o valor do codigo indentificador, mais sim a instãncia itemMB.selecionarItem.getCod_id();
mesmo sabendo disso ainda não sei como consertar, ainda sou iniciante em java
Michael Batista

Michael Batista

Responder

Post mais votado

12/08/2016

Tente colocar um breakpoint no código e fazer o teste passo a passo, verificando se quando entra no "deletarItem" se todos os valores do parâmetro "item" estão preenchidos. Caso não, talvez possa ser problema nos métodos get/set do objeto Item.

Jones Granatyr

Jones Granatyr
Responder

Gostei + 1

Mais Posts

12/08/2016

Michael Batista

Jones Granatyr!
mas se a datatable esta mostrando a saida de texto <h:outputText value="#{item.cod_id}" /> corretamente
não significa que os valores estão preenchidos? e que o método get também está de correto?
Responder

Gostei + 0

15/08/2016

Michael Batista

alguém tem algum código exemplo que possa me mostrar?
Responder

Gostei + 0

15/08/2016

Jones Granatyr

Se em run-time está aparecendo os valores corretos, então o get está funcionando. O que deu o teste com break point?
Responder

Gostei + 0

16/08/2016

Michael Batista

esta dando o que falei anteriormente, o getCod_id() não possui valor, mas sim a instancia itemMB.selecionarItem.cod_id.
eu fiz algumas pesquisas e encontrei um cara que estava com o mesmo problema que eu e resolveu criando um actionEvent, porém ele não é muito explicativo na solução, vc pode dar uma olhada?
o topico dele esta aqui
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar