Estou tendo muita dificuldade em conectar o JAVA com o postgresql. Eu pesquisei, e encontrei um código-fonte que faz essa conexão com o banco de dados, mas to um pouco no escuro, sobre onde eu localizo o meu Database, meu usário e minha senha.
Abaixo segue o exemplo em java para a conexão com o banco:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
String driver = "org.postgresql.Driver";
String user = "postgres";
String senha = "minhasenha";
String url = "jdbc:postgresql://localhost:5432/Databases";
try {
Class.forName(driver);
Connection con = null;
con = (Connection) DriverManager.getConnection(url, user, senha);
JOptionPane.showMessageDialog(null, "Conexão realizada com Sucesso!");
} catch (ClassNotFoundException ex) {
System.err.print(ex.getMessage());
} catch (SQLException e) {
System.err.print(e.getMessage());
}
}
}
OBS: No momento da execução, ele não me exibe a mensagem:
[color=darkred]FATAL: database “Databases” does not existCONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
[/color]
Inclusive, eu baxei em um site o jdbc.jar do postgresql para a conexão, fui em propriedades e adicionei a biblioteca também.
Mas, agora eu não to conseguindo utilizar o método .executeQuery(“consulta”);
Class.forName(driver);
Connection con = null;
database = JOptionPane.showInputDialog("Informe o Bando de Dados: ", "DataBank");
con = (Connection) DriverManager.getConnection(url + database, usuario, senha);
Statement sq_stmt = (Statement) con.createStatement();
query = "SELECT * FROM ALUNO";
ResultSet rs = sq_stmt.executeQuery(query);
Alguém sabe se isso significa que meu arquivo .jar do jdbc (PostrgeSQL), não está importado, pois eu cliquei com o botão direito no projeto e importei na biblioteca, só adicionei o arquivo.
bem, eh o seguinte…da uma lida na apostila FJ21 da Caelum na parte de DAO, não é recomendado usar Statement, use PreparedStatement…Leia a apostila na parte q falei q vai entender.
E ja q vai ler a FJ21 leia tbm a FJ11.
veja o codigo.
//aqui eu uso mysql mas eh a mesma coisa para outros bancos.
public class ConexaoBD{
public static Connection getConnection() throws SQLException{
try {
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection("jdbc:mysql://xxx.xxx.xxx.xxx/mybd?user=eu&password=eu");
} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
throw new SQLException();
}
}
}
//aqui vc faz o bean
public class Clientes{
private Long id;
private String nome;
private String sobreNome;
//get e sets
}
//aqui vc faz o DAO, q vc vai saber o q eh lendo a apostila FJ21
public class ClientesDAO{
private Connection con;
ClientesDAO() throws SQLException{
//construtor da classe assim sempre vc vai ter uma conexao
this.con = ConexaoBD.getConnection();
}
public List<Clientes> retornaConsultaClientes() throws SQLException{
List<Clientes> lista = new ArrayList<Clientes>();
PreparedStatement stm = this.con.prepareStatement("SELECT * FROM clientes");
ResultSet rs = stm.executeQuery();
while(rs.next()){
Clientes cli = new Clientes();
cli.setId(rs.getLong("id"));
cli.setNome(rs.getString("nome");
cli.setSobrNome(rs.getString("sobrenome"));
lista.add(cli);
}
rs.close();
stm.close();
return lista;
}
}
Novamente, leia a FJ21 na parte de DAO e tbm leia a FJ11 q vai te ajudar muiiito.
Vou verificar hoje. Mas algo que me deixou curioso e acredito ser o principal motivo de eu não conseguir.
O usuário daniferreira disse: "naquela sua primeira resolução ali estava faltando a biblioteca do postgree. ", ou seja, eu tenho que acrescentar a biblioteca. Ex:
import (…)
Seria a falta da “chamada” dessa biblioteca? Se sim, qual é o nome do import?