Tabela não exite

5 respostas
A

Olá,

Tento inserir dados no banco postgres, porém ta dando este erro:

<blockquote>Exception in thread main java.lang.RuntimeException: org.postgresql.util.PSQLException: ERRO: coluna datanascimento da relação contatos não existe

Posição: 43

at dao.ContatoDAO.adiciona(ContatoDAO.java:33)

at teste.TestaInsere.main(TestaInsere.java:20)

Caused by: org.postgresql.util.PSQLException: ERRO: coluna datanascimento da relação contatos não existe

Posição: 43

at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2103)

at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1836)

at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)

at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:334)

at dao.ContatoDAO.adiciona(ContatoDAO.java:30)

 1 more</blockquote>[color=red] [/color]

Mais a tabela existe claro :?

5 Respostas

Luciano_Lopes

Ele ta dizendo que a coluna “datanascimento” não existe

javaflex

Veja se não criou o campo com aspas e está dando insert sem aspas. Prefiro trabalhar sem aspas. Caso nao for isso poste seu script de criacao e script de insert realizado.

A

O scripte de criação no banco é este:

-- Column: "dataNascimento"

-- ALTER TABLE contatos DROP COLUMN "dataNascimento";

ALTER TABLE contatos ADD COLUMN "dataNascimento" date;

o insert no eclipse é este:

public void adiciona(Contato contato) throws SQLException {
		String sql = "INSERT INTO contatos (nome,email,endereco,dataNascimento) values(?,?,?,?)";
		try {
			PreparedStatement stmt = connection.prepareStatement(sql);
			stmt.setString(1, contato.getNome());
			stmt.setString(2, contato.getEmail());
			stmt.setString(3, contato.getEndereco());
			stmt.setDate(4, new java.sql.Date(contato.getDataNascimento()
					.getTimeInMillis()));

			// executa
			stmt.execute();
			stmt.close();
		} catch (SQLException e) {
			throw new RuntimeException(e);
javaflex
admin596:
O scripte de criação no banco é este:
-- Column: "dataNascimento"

-- ALTER TABLE contatos DROP COLUMN "dataNascimento";

ALTER TABLE contatos ADD COLUMN "dataNascimento" date;

o insert no eclipse é este:

public void adiciona(Contato contato) throws SQLException {
		String sql = "INSERT INTO contatos (nome,email,endereco,dataNascimento) values(?,?,?,?)";
		try {
			PreparedStatement stmt = connection.prepareStatement(sql);
			stmt.setString(1, contato.getNome());
			stmt.setString(2, contato.getEmail());
			stmt.setString(3, contato.getEndereco());
			stmt.setDate(4, new java.sql.Date(contato.getDataNascimento()
					.getTimeInMillis()));

			// executa
			stmt.execute();
			stmt.close();
		} catch (SQLException e) {
			throw new RuntimeException(e);
É só considerar o que falei, ou voce retira as aspas ou coloca as apas também no INSERT. Para evitar confusão pode retirar as aspas dos nomes dos campos no script de criação.
A

Parceiro consegui aqui, é que no postgres tem que ser tudo minusculo, mais agradeço a ajuda ae :smiley:

Criado 29 de março de 2013
Ultima resposta 30 de mar. de 2013
Respostas 5
Participantes 3