Atualizando somente uma linha SQL

4 respostas
augustocolom

Olá pessoal,
Estou com alguns problemas na hora de inserir conteúdo em meu banco de dados. Necessito atualizar somente uma linha do meu banco a cada Resultset…
pra ficar mais fácil de entender…

Meu código é esse

String Maria = "UPDATE tabelax SET nome = 'Maria'" 
String Joao = "UPDATE tabelax SET nome = 'Joao'";
Statement stm = conn.createStatement();

while(rs.next())
{

   if(("sim".equals(rs.getString("disp_local"))) ||
	"Sim".equals(rs.getString("disp_local"))))
   {
		stm.executeQuery(Maria);
   }
   else
   {
                stm.executeQuery(Joao);
   }
}

Ele funciona normal, mas o problema é que ele atualiza o banco inteiro com o valor, preciso que ele atualize somente a determinada linha em que está…

4 Respostas

T
String Maria = "UPDATE tabelax SET nome = 'Maria' WHERE....."

onde o que vem depois do “WHERE” é a condição adequada para não atualizar todo o banco, mas apenas a linha desejada.

augustocolom

thingol:
String Maria = "UPDATE tabelax SET nome = 'Maria' WHERE....."

onde o que vem depois do “WHERE” é a condição adequada para não atualizar todo o banco, mas apenas a linha desejada.

Opa Thingol,

Sim, com Where resolve este problema, mas no meu caso não serve pois existe uma grande estrutura por trás disso…
valeu pela ajuda, mas sabe se existe alguma forma utilizando comparações com rs.getString?

T

Você pode usar um “updatable resultset”.

Olhe em:

http://www.exampledepot.com/egs/java.sql/CreateUpdatableResultSet.html

e a seguir siga os “Related Examples” listados nessa página que lhe mostrei. Em particular, veja este aqui:

http://www.exampledepot.com/egs/java.sql/UpdateRow.html?l=rel

augustocolom

thingol:
Você pode usar um “updatable resultset”.

Olhe em:

http://www.exampledepot.com/egs/java.sql/CreateUpdatableResultSet.html

e a seguir siga os “Related Examples” listados nessa página que lhe mostrei. Em particular, veja este aqui:

http://www.exampledepot.com/egs/java.sql/UpdateRow.html?l=rel

Opa thingol,
Perfeito!!! Muito bom este link, resolveu meu problema. Se alguém precisar, ficou assim…

while(rs.next())
{
   if(("sim".equals(rs.getString("Valorl"))) ||
   	("Sim".equals(rs.getString("Valorl"))))
   {
   	rs.updateString("Coluna", "Sim");
	rs.updateRow();
}
	else
{
	rs.updateString("Coluna", "Não");
	rs.updateRow();
}
}
Criado 7 de agosto de 2009
Ultima resposta 11 de ago. de 2009
Respostas 4
Participantes 2