Conetando BD PostgreSQL

7 respostas
Jefersson_Alex_dos_S

Olá pessoal,

Estou fazendo pela primeira vez uma conexão com um BD PostgreSQL. O problema é que não estou conseguindo fazer o registro do driver.

Baixei esse driver:
[url]http://jdbc.postgresql.org/download/pg72jdbc1.jar[/url]

E fiz o seguinte código:

public class Connect {
	
	private String url = "jdbc:postgresql://zezinho.uemsnet:5432/propp";
	
	private String name = "user";
	
	private String psw = "psw";
	
	private Connection con;
	
	private Statement st;
	
	public Connect () {
		try{
			// Registrando o driver
			Class.forName("org.postgresql.Driver");			
			
			// Fazendo uma conexão teste
			con = DriverManager.getConnection(url, name, psw);
			
		}catch (Exception e) {			
			System.out.println(e.getLocalizedMessage());
			e.printStackTrace();
		}
	}
	
	public static void main( String[] args ) {
		Connect p = new Connect();
	}
}

E ele lançou as excessões:

[list]
java.lang.ClassNotFoundException: org.postgresql.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at Connect.<init>(Connect.java:16)
at Connect.main(Connect.java:29)[/list]

Como pode-se ver o erro parece estar no registro do driver... Como saber se estou usando o nome da classe de driver correto? E onde está o erro nesse código?

Obrigado e t+.

7 Respostas

Rafael_Steil

Voce nao esta com o .jar do postresql no classpath.

Faca algo como

java -cp .;pgsqlxxx.jar TeuProg

Rafael

keller

adicione o driver nas pastas

j2sdk/jre/ib/ext [sdk]

Java/j2re/lib/ext [re]

ai é só compilar e correr pro abraço… :smiley:

Rafael_Steil

gui:
adicione o driver nas pastas

j2sdk/jre/ib/ext [sdk]

Java/j2re/lib/ext [re]

ai é só compilar e correr pro abraço… :D

NAO faca isso.

Quando vc precisar mudar a aplicacao de maquina / instalar em algum servidor, a mesma nao ira funcionar, ja que os jars nao vao existir.

O melhor eh fazer correto desde o inicio, ou seja, colocar os jars em algum diretorio junto com a aplicacao e apontar o classpath para la ( ou, no caso de aplicacoes web, em WEB-INF/lib ).

Rafael

Jefersson_Alex_dos_S

Valeu ae pessoal… T+

A

Eu estou com problema no SQLexplorer e usei a mesma classe para fazer um teste e me gerou esse erro de exceção.

Alguem conhece esse erro?

A connection error has occurred: FATAL:  No pg_hba.conf entry for host 192.168.1.106, user root, database odyssea

A connection error has occurred: FATAL:  No pg_hba.conf entry for host 192.168.1.106, user root, database odyssea

	at org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:202)
	at org.postgresql.Driver.connect(Driver.java:122)
	at java.sql.DriverManager.getConnection(DriverManager.java:512)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at sandbox.andre.TestaBanco.<init>(TestaBanco.java:33)
	at sandbox.andre.TestaBanco.main(TestaBanco.java:42)
kuchma
andresilvalves:
Alguem conhece esse erro?
A connection error has occurred: FATAL:  No pg_hba.conf entry for host 192.168.1.106, user root, database odyssea

A connection error has occurred: FATAL:  No pg_hba.conf entry for host 192.168.1.106, user root, database odyssea

	at org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:202)
	at org.postgresql.Driver.connect(Driver.java:122)
	at java.sql.DriverManager.getConnection(DriverManager.java:512)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at sandbox.andre.TestaBanco.<init>(TestaBanco.java:33)
	at sandbox.andre.TestaBanco.main(TestaBanco.java:42)

Sim. Isso eh problema de permissao (agora nao sei ao certo se pode ser porque o PostgreSQL nao esta aceitando conexoes via TCP/IP).

Sugestoes:

- Veja na doc como liberar no pg_hba.conf para que voce possa acessar o servidor a partir desse IP.

- Veja se o servidor esta aceitando conexoes via TCP/IP ou apenas local (para aceitar ele deve ser inicializado com o parametro -i).

Marcio Kuchma

maresp

:arrow: Utilize a opção -i do postmaster para que ele aceite conexões TCP/IP;
:arrow: Depois só adicione seu IP no pg_hba.conf

Criado 29 de novembro de 2004
Ultima resposta 1 de dez. de 2004
Respostas 7
Participantes 6