Erro com Update dentro de JSP - Ajuda

6 respostas
A

OI…

Estou começando a aprender JSP agora,gostaria que se possível alguém me auxiliasse com um erro que está dando …

ERRO:

QDO EU MANDO “RODAR” , ENTRA NA PÁGINA DE ERRO: ATUALIZAÇÃO NÃO REALIZADA COM SUCESSO.

NÃO ESTÁ ATUALIZANDO OS PRECOS, ACHO QUE É ALGUM ERRO NA INSTRUÇÃO UPDATE NA JSP, AO EXECUTAR NO MEU BANCO(DIRETAMENTE) ,O UPDATE FUNCIONA, AGORA NO PROGRAMA NÃO, …O ERRO PODE SER AO PASSAR OS PARÂMETROS(TIPODOPRODUTO E DEFINIR O AUMENTO) NO UPDATE???

QUEM PUDER ME AJUDAR…:smiley:

O códigos estão abaixo:

Página(JSP) com o formulário para chamar a outra JSP que faz a atualização do preco do produto por tipo


----> Não coloquei os <html>…só o essencial está abaixo

// POSSUI O Combox para ESCOLHER O tipodeProduto, E UMA CAIXA DE TEXTO QUE RECEBE(ATUALIZA) O AUMENTO QUE EU DESEJAR, DE 1,2

&lt;select name="tipoProduto"&gt;
      &lt;%

Connection conexao = Conexao.getConexao();
Statement instrucao = conexao.createStatement();
ResultSet rs;

rs = instrucao.executeQuery("SELECT * FROM TipoProduto");

while(rs.next()) {
%>

<option value="<%= rs.getInt(IDTipoProduto) %>"><%= rs.getString(tipoProduto) %></option>

<%	

}

%>

</select>

action…código abaixo


PAGINA SOLICITADA, QUE FAZ A ATUALIZAÇÃO…

<%@ page import=projeto.bazar.dominio.<em>, java.sql.</em>, projeto.bazar.persistencia.Conexao, java.util.*,java.text.SimpleDateFormat” %>

<html>

<head>

<title>ATUALIZAÇÃO PREÇO DOS PRODUTOS POR TIPO</title>

</head>
&lt;body&gt;

<%

String tipoProduto=request.getParameter("tipoProduto");
String aumento = request.getParameter("aumento");


Produto prod= new Produto();
Connection conexao = Conexao.getConexao();
Statement instrucao = conexao.createStatement();



String insercao = "Update Produto set Produto.Preco = Produto.Preco= * aumento='"+aumento+"'  from Produto inner join TipoProduto on Produto.IDTipoProduto=TipoProduto.IDTipoProduto where TipoProduto.TipoProduto like '"+tipoProduto+"'";
	
int result = instrucao.executeUpdate(insercao);


	

if (result ==  1) {

%>
<jsp:forward page=“sucAtual.htm”/>

<%

} else {

%>

<jsp:forward page=“erroAtual.htm”/>

<%

}

%>

</body>

</html>

--------------AGRADEÇO A ATENÇÃO----------------------

6 Respostas

M

Afinal, qual é o erro, assim fica mais fácil de responder.

A

Oi…

o erro está nesse parte…

Ele não tá fazendo a atualização do preco no banco entra na pagina de erro…erroAtual<jsp:forward page=“erroAtual.htm”/>…não dá erro de compilação nada…apenas só tá entrando na pagina de erro e não fazendo a atualização

<%

String tipoProduto=request.getParameter(“tipoProduto”);

String aumento = request.getParameter(“aumento”);

…

…

String insercao = “Update Produto set Produto.Preco = Produto.Preco= * aumento=’”+aumento+"’ from Produto inner join TipoProduto on Produto.IDTipoProduto=TipoProduto.IDTipoProduto where TipoProduto.TipoProduto like ‘"+tipoProduto+"’";

int result = instrucao.executeUpdate(insercao);

if (result == 1) {

%>

<jsp:forward page=sucAtual.htm/>
<%

} else {

%>

<jsp:forward page=“erroAtual.htm”/>

<%


AGRADEÇO A ATENÇÃO -----------------------

M

Bem, veja qual erro vai capturar... na verdade acho que o erro está no seu SQL, já testou sem ser no JSP

try &#123;
		Class.forName&#40;&quot;org.gjt.mm.mysql.Driver&quot;&#41;.newInstance&#40;&#41;;
		Connection con = DriverManager.getConnection&#40;&quot;urldoteubanco&quot;&#41;;
		 Statement instrucao = conexao.createStatement&#40;&#41;;



String insercao = &quot;Update Produto set Produto.Preco = Produto.Preco= * aumento='&quot;+aumento+&quot;' from Produto inner join TipoProduto on Produto.IDTipoProduto=TipoProduto.IDTipoProduto where TipoProduto.TipoProduto like '&quot;+tipoProduto+&quot;'&quot;;

int result = instrucao.executeUpdate&#40;insercao&#41;;




if &#40;result == 1&#41; &#123;
%&gt;
&lt;jsp&#58;forward page=&quot;sucAtual.htm&quot;/&gt;

&lt;%
&#125; else &#123;
%&gt;
&lt;jsp&#58;forward page=&quot;erroAtual.htm&quot;/&gt;
&lt;%
&#125;
%&gt;
&lt;/body&gt;
&lt;/html&gt; &lt;%
		&#125; catch &#40;SQLException e&#41; &#123;
			System.err.println&#40;&quot;Erro&#58; &quot; + e&#41;;
			con = null;
		&#125;%&gt;

ficou meio estranho... mas testa ..

&#58;okok&#58;
A

OI…:slight_smile:

Testei sem ser na JSP…e deu certo(OK),
acho que o problema está no combobox.Não tenho a minima ideia pq NÃO TÁ DANDO CERTO…:\

--------------------CÓDIGO DA JSP DO COMBOBOX

Connection conexao = Conexao.getConexao();

Statement instrucao = conexao.createStatement();

ResultSet rs;
rs = instrucao.executeQuery("SELECT * FROM TipoProduto");
while(rs.next()) {
%>

<option value="<%= rs.getInt(idtipoProduto) %>"><%= rs.getString(tipoProduto) %></option>

<%	

}

%>

--------------FUNCIONAMENTO

TOU EXPLICANDO UM POUCO COMO FUNCIONA SE VC PUDER ME AJUDAR, SENÃO TUDO BEM :D.

TABELA PRODUTO TABELA TIPO PRODUTO
IDPRODUTO(PK)
DESCRICAOPD IDTIPOPRODUTO(PK)
PRECO DESCRICAOTP
IDTIPOPRODUTO(FK)

TELA

COMBOBOX —> TIPODEPRODUTO
TEXTFIELD —> VALORDOAUMENTO

OS DADOS DO COMBOBOX SÃO DA TABELA TIPOPRODUTO PARA QDO EU DIGITAR O AUMENTO , OCORRER A ATUALIZAÇÃO NA TABELA DE PRODUTO DO PREÇO DE TODOS OS PRODUTOS QUE POSSUEM O TIPO DE PRODUTO(CHAVE ESTRANGEIRA) SELECIONADO NO COMBOBOX.

POR EXEMPLO

SELECIONEI NO COMBOBOX TIPODEPRODUTO: CD
DIGITEI AUMENTO : 1.2

TABELA TIPOPRODUTO

IDTIPOPRODUTO TIPOPRODUTO
1 MATERIAL ESCOLAR

TABELA PRODUTO

IDPRODUTO DESCRIÇÃO DO PRODUTO IDTIPOPRODUTO PRECO
1
2 CD ZECA BALEIRO 1 10
CD CAPITAL INICIAL 1 10

ATUALIZA O PRECO DOS CDS DE 10 PARA 12 REAIS

--------------------CÓDIGO DA JSP DO COMBOBOX…

Connection conexao = Conexao.getConexao();

Statement instrucao = conexao.createStatement();

ResultSet rs;
rs = instrucao.executeQuery("SELECT * FROM TipoProduto");
while(rs.next()) {

%>
<option value="<%= rs.getInt(“idtipoProduto”) %>"><%= rs.getString(“tipoProduto”) %></option>
<%
}
%>

--------CLASSE TESTE SEM JSP - ----------------DEU CERTO ----OK

import java.sql.<em>;

import projeto.bazar.persistencia.Conexao;

import corejava.</em>;

public class Teste2 {

public static void main(String [] args) {
	
	try {
		
		
		String tipoProduto;
		Connection conexao = Conexao.getConexao();
		Statement instrucao = conexao.createStatement();
		double aumento;
		tipoProduto =Console.readLine("Digite uma tipo de Produto");
		aumento =Console.readDouble("Digite seu aumento");
		
	
		String insercao =  "Update Produto set Produto.Preco = Produto.Preco  * '"+aumento+"' from Produto inner join TipoProduto on Produto.IDTipoProduto=TipoProduto.IDTipoProduto where TipoProduto.TipoProduto like '"+tipoProduto+"'";;
	
	
	
	int result = instrucao.executeUpdate(insercao);

if (result  &gt;=  1) {
	
	System.out.println("Atualização realizada com sucesso");
	
}	else{
		
		System.out.println("Falha ao atualizar o preco");
		
	}
	
		} catch (SQLException se) {
	}
	}

}

-----------------AGRADEÇO A ATENÇÃO…

M

Ué, agora ficou super simples, veja o que tens que mudar:

String insercao = "Update Produto set Produto.Preco = Produto.Preco * '"+ request.getParameter&#40;"VALORDOAUMENTO"&#41; +"' from Produto inner join TipoProduto on Produto.IDTipoProduto=TipoProduto.IDTipoProduto where TipoProduto.TipoProduto like '"+request.getParameter&#40;"TIPODEPRODUTO"&#41; +"'";

só uma coisa verifique se o nome de seus campos estão grafados da forma que coloquei aí…

Dá próxima vez utilize os Recursos BBcode para delimitar código para ficar mais fáceis de serem compreendidos… Beleza?

:okok:

A

Oi…agora deu certo…obrigado pela ajuda :smiley: :!: :!: :!:

Realmente o código ficou desorganizado…não sei como vc conseguiu entender essa doidera…Valew…da proxima vez utilizarei os recursos BBCode… :slight_smile:

Abraços… :grin:

Criado 16 de julho de 2005
Ultima resposta 16 de jul. de 2005
Respostas 6
Participantes 2