Excluindo apenas um registro com JDBC
Galera eu peguei este Método no artigo do Devmedia: Manipulando dados com JDBC em Java, mais estou tendo dificuldade em utilizar
A data table que possui os items a serem excluidos:
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
//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
Curtidas 0
Melhor post
Jones Granatyr
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.
GOSTEI 1
Mais Respostas
Michael Batista
12/08/2016
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?
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?
GOSTEI 0
Michael Batista
12/08/2016
alguém tem algum código exemplo que possa me mostrar?
GOSTEI 0
Jones Granatyr
12/08/2016
Se em run-time está aparecendo os valores corretos, então o get está funcionando. O que deu o teste com break point?
GOSTEI 0
Michael Batista
12/08/2016
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
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
GOSTEI 0