Galera! Pq está dando erro? Me ajudem! [RESOLVIDO]

Oi pessoal,

Usei o Eclipse para fazer uma conection com o Banco de dados MySql, blzinha… até ai tudo bem! Criei metodos de inserir, alterar… Mas o Delete não esta dando certo… Alguem pode me ajudar??? :cry:

Pra quem for me ajudar… explica direitinho pois sou iniciante por favor…!!

Segue o código…

[code]package com.yourcompany.struts;

import java.sql.*;

public class Banco {
private Connection conn;

public Banco() {
	try{
		Class.forName("com.mysql.jdbc.Driver");
		conn = DriverManager.getConnection("jdbc:mysql://localhost/test?user=teste&password=teste");  
		
	}catch(Exception e){
		e.printStackTrace();
	}
}

public void selecionar() {

	try{
		Statement stmt = conn.createStatement();
		
		ResultSet res = stmt.executeQuery("select * from formulario");
		
		
		while (res.next()){
			
		
				System.out.println(res.getInt("id"));
				System.out.println(res.getString("PRIMEIRO_NOME"));
				System.out.println(res.getString("ULTIMO_NOME"));
				System.out.println(res.getString("IDADE"));	
				System.out.println(res.getString("SEXO"));
				System.out.println(res.getString("PROFISSAO"));	
				System.out.println(res.getString("ENDERECO"));	
				System.out.println(res.getString("BAIRRO"));
				System.out.println("-----------------");
		}	
		
		res.close();
		stmt.close();
			
		}catch(SQLException sqle){
		sqle.printStackTrace();
	}
}

public void inserir(){
try {
	Statement stmt = conn.createStatement();
	stmt.executeUpdate("insert formulario values (null, 'Roberta', 'Benedita', '24', 'F', 'ESTUDANTE', 'MARQUES DE MURITIBA', 'JACANA')");
	stmt.close();
	
}catch (SQLException sqle){
	sqle.printStackTrace();
}

}

public void alterar(){
	try{
		Statement stmt = conn.createStatement();
		
		stmt.executeUpdate("update formulario set PRIMEIRO_NOME = 'Fulano' where id=3");
		
		stmt.close();
	}catch (SQLException e){
		e.printStackTrace();
	}
}

/*public void excluir(){
	try{
		Statement stmt = conn.createStatement();
		
		stmt.executeUpdate("delete set PROFISSAO = 'null' where id=2");
		stmt.close();
	}catch (SQLException e){
		e.printStackTrace();
	}
}
*/

	public static void main(String[] args) {
		
		Banco banco = new Banco();
		
		//banco.inserir();
		//banco.alterar();
		banco.selecionar();
				
		
}

}[/code]

O metodo que está comentado é o que eu não consegui rodar…

Brigadao!!!

Você precisa de umas aulinhas de SQL…

delete from nome_da_tabela where condicao

http://dev.mysql.com/doc/refman/4.1/en/delete.html

A sintaxe do seu comando SQL está incorreta. Use:

delete from TABELA where CONDICAO

[]s
Eduardo

da proxima vez coloca um titulo mais sugestivo para sua dúvida, ok? :wink:

Obrigada para os que foram simpaticos!

*Pra quem for me ajudar… explica direitinho pois sou iniciante por favor…!! *

Eu fiz isso… só que dá o seguinte erro…

java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id=3' at line 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695) at com.mysql.jdbc.Connection.execSQL(Connection.java:2998) at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1071) at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1005) at com.yourcompany.struts.Banco.excluir(Banco.java:78) at com.yourcompany.struts.Banco.main(Banco.java:93)

Oi Renata,
Posta o comando SQL que você utilizou agora.

[]s

coloca um System.out.println( seuSql ) para a gente ver sua sintaxe

[quote=renatac]Eu fiz isso… só que dá o seguinte erro…

java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id=3' at line 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695) at com.mysql.jdbc.Connection.execSQL(Connection.java:2998) at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1071) at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1005) at com.yourcompany.struts.Banco.excluir(Banco.java:78) at com.yourcompany.struts.Banco.main(Banco.java:93) [/quote]

O proprio console está falando para você o problema…ele está dizendo que está com um problema na sua sintaxe de SQL, ou seja você esta digitando alguma coisinha estranha…posta o seu código SQL usado… :slight_smile:

Ae pessoal eu to fazendo assim:

 ("delete from formulario where id = 3" ); 

para deletar da tabela formulario onde id = 3

[code]public void excluir(){
try{
Statement stmt = conn.createStatement();

		stmt.executeUpdate("delete from formulario, WHERE id = 3" );
		
		stmt.close();
	}catch (SQLException e){
		e.printStackTrace();
	}

[/code]

Ae galeraaaa Funcionou era só a virgula que nao estava deixando!!!

Obrigada ai pessoal!!!

Renata, seu SQL para exclusão está errado, nem se fosse update funcionaria pois nem o nome da tabela onde quer fazer a operação vc informa.
:slight_smile:

o nome da minha tabela se chama formulario, eu fiz o código e deu certo aqui… era só a virgula antes do WHERE que não estava deixando ele deletar o ID numero 3… mas já deu certo aqui… obrigada!!