UsuarioDAO

Pessoal, estou com dificuldades para fazer rodar um insert via DAO, aparece mensagem de erro: Relation “usuario” does not exist. Posição 13.

Alguém pode me ajudar?

Class TestUsuarioDAO

package cjweb1.teste;

import cjweb1.entidades.Usuario;
import cjweb1.jdbc.UsuarioDAO;

public class TestUsuarioDAO {

	public static void main(String[] args) {
		

		Usuario usu = new Usuario();
		usu.setNome("CArlos");
		usu.setLogin("Car");
		usu.setSenha("123");
		
		UsuarioDAO usuDao = new UsuarioDAO();
		usuDao.cadastrar(usu);
		
		}
	}

Class UsuarioDAO

package cjweb1.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import cjweb1.entidades.Usuario;

public class UsuarioDAO {
	
	//Precisamos primeiro de uma conexão com o banco
	
	private Connection con = Conexao.getConnection();
	
	public void cadastrar(Usuario usuario){
		
		
		String sql = "INSERT INTO USUARIO" +" (nome, login, senha)"+" VALUES (?, ?, ?)";
		
		try {
			PreparedStatement preparador = con.prepareStatement(sql);
			preparador.setString(1,usuario.getNome());
			preparador.setString(2,usuario.getLogin());
			preparador.setString(3,usuario.getSenha());
			
			
			preparador.execute();
			preparador.close();
			
			System.out.println("Dados salvos com sucesso");
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			System.out.println("Não foi possível salvar nos banco"+e.getMessage());
			
		}
		
	}

}

Class Usuario

package cjweb1.entidades;

public class Usuario {

	private Integer id;
	private String nome;
	private String login;
	private String senha;
	
	
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getLogin() {
		return login;
	}
	public void setLogin(String login) {
		this.login = login;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	
	
}

Class Conexão

package cjweb1.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class Conexao {
	
	public static Connection getConnection(){
		
		Connection con=null;
		
		try {
			con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "postgres","Bibd7014");
			
			System.out.println("Conectado com sucesso");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			System.out.println("Não foi possível se conectar com o banco" + e.getMessage());
			
		}
		return con;
		
	}
}

Sua tabela chama Usuario mesmo?

Se sim, tente por aspas simples na sua String de sql.

String sql = "INSERT INTO 'USUARIO' " +" ('nome', 'login', 'senha')"+" VALUES (?, ?, ?)";

Sim…
Já coloquei aspas simples e deu o mesmo erro.
o banco é o postgresql.
Consigo conectar, mas não consigo inserir

henrique poste o log de erro…

O erro que aparece no console é :Relation “usuario” does not exist. Posição 13.
Está caindo no SQLException.
Parece ser um erro na instrução sql, pois dá esse mesmo erro quando tento fazer direto no postgree.
Dessa forma da erro: Insert into usuario (nome, login, senha) values (‘carlos’, ‘car’,‘123’);

e dessa forma não: Insert into public.“usuario” (nome, login, senha) values (‘carlos’, ‘car’,‘123’);
só que dessa forma não roda no eclipse.

Não sei mais o que fazer, já coloquei todo tipo de driver do postgree e não roda, até mudei versão.

Tentar assim

String sql = "INSERT INTO USUARIO VALUES (?,?,?)";

vê se esse exemplo ira ajudar.

DAOGenericoUsuario .

{ },.

Obrigado Daniel, mas tbm não deu certo.
Parece que o a aplicação não está encontrando a tabela usuário.
Mas ela está lá só esperando rsrs
Parece ser um erro de driver, pois o código esta correto.

1 curtida

vê se esse tópico lhe ajuda .

e essa tambem :

Oi Daniel!

copiei o código que vc passou e não deu também…

você tem teamView ?

No momento não, mas assim que chegar em casa (lá por 19:00h) eu instalo só preciso do seu contato dai.
whats 41 9820-7849.
Abraços!

1 curtida

beleza. se a minha net tive boa ate la.

enviei o meu numero em mensagem privada.

Ok, valeu amigão…

1 curtida

Verifique se o usuário do banco possui as devidas permissões na tabela também.

Olá,

Vejam: http://stackoverflow.com/questions/4168689/is-it-possible-to-specify-schema-when-connecting-to-postgres-with-jdbc

Você pode tentar colocar o nome do schema, e verificar se isso ajuda.

Olá cviniciusm!
Também coloquei o schema, mas não deu.

Olá,

Mostre-nos os erros completos que aparecem, por favor.

E veja também: http://stackoverflow.com/questions/5766107/java-sql-error-relation-table-name-does-not-exist

 SELECT table_schema, table_name
 FROM information_schema.tables;

Como sua tabela usuario aparece na saída da consulta acima ?

SELECT table_schema, Usuario
FROM information_schema.tables;

Aparece:
ERROR: column “usuario” does not exist
Line 1: select table_schema, Usuario
^
SQL state: 42703

Olá,

table_name é table_name mesmo.

cviniciusm!!

Você é o cara…
Consegui. Era essa porra de lowercase or caseSensitive do djanho.rs
Ficou assim: "Insert into “Usuario” (nome…

Valeu amigão…
Abraços a todos os que se preocuparam ai…
Valeu galera

Abraços!
Carlos

2 curtidas