Erro ao utilizar o Update na classe .DAO

4 respostas
L

Boa noite, estou fazendo uma classe DAO onde contém o método para atualizar, porém ao chamar esse método está aparecendo um erro na sintaxe do MySql, sou iniciante na área e gostaria que alguém me ajudasse. Estou usando o Eclipse. Segue a mensagem de erro:
java.sql.SQLException: Unknown column ‘teste’ in ‘field list’.

Obrigado!!!

4 Respostas

WRYEL

onde você está tentando dar um update, não existe o campo/coluna chamando ‘teste’.

coloca sua query aqui de update e faça um describe na sua tabela e cole aqui a saida também:

describe nomedasuatabela;

[]`s

L
public void atualizar(Aluno aluno)throws SQLException {
		PreparedStatement pstmt = null;
		StringBuffer sql = new StringBuffer();
		sql.append("UPDATE aluno SET ");
		sql.append("nome=");
		sql.append(aluno.getNome()+",");
		sql.append("nota1=");
		sql.append(aluno.getNota1()+",");
		sql.append("nota1=");
		sql.append(aluno.getNota2()+",");
		sql.append("nota1=");
		sql.append(aluno.getNota3()+",");
		sql.append("nota1=");
		sql.append(aluno.getNota4()+"");
		sql.append("where pk_aluno = " + aluno.getPkAluno());
		pstmt = con.prepareStatement(sql.toString());
		pstmt.execute();
	}
pk_aluno	int(10) unsigned	NO	PRI		auto_increment

nome	varchar(50)	YES	(null)		(null)

nota1	double	YES	(null)		(null)

nota2	double	YES	(null)		(null)

nota3	double	YES	(null)		(null)

nota4	double	YES	(null)		(null)
WRYEL

Boa noite, você está usando a API do jdbc da maneira errada, vou procurar um tutorial bom aqui e ja posto o link (http://www.roseindia.net/jdbc/prepared-statement-example.shtml), enquanto isso, para se adequar ao que você precisa, tente:

public void atualizar(Aluno aluno) throws SQLException {
		PreparedStatement pstmt = null;
		StringBuilder sql = new StringBuilder();
		sql.append("UPDATE aluno SET ");  
        sql.append("nome = ?, ");  
        sql.append("nota1 = ?, ");  
        sql.append("nota2 = ?, ");  
        sql.append("nota3 = ?, ");  
        sql.append("nota4 = ? ");  
        sql.append("WHERE pk_aluno = ?");  
		pstmt = con.prepareStatement(sql.toString());
		int contador = 1;
		pstmt.setString(contador++, aluno.getNome());
		pstmt.setDouble(contador++, aluno.getNota1());
		pstmt.setDouble(contador++, aluno.getNota2());
		pstmt.setDouble(contador++, aluno.getNota3());
		pstmt.setDouble(contador++, aluno.getNota4());
		pstmt.setInt(contador++, aluno.getPkAluno());
		pstmt.executeUpdate();		
	}

[]'s

L

Deu certo do jeito que vc colocou! Valeu, mas eu queria entender porque da forma que fiz estava dando erro no sql.

Criado 30 de outubro de 2011
Ultima resposta 30 de out. de 2011
Respostas 4
Participantes 2