Foros del Web » Programación para mayores de 30 ;) » Java »

Conexion java postgre

Estas en el tema de Conexion java postgre en el foro de Java en Foros del Web. Hola todos alguien me podria decir como conectar paso a paso java con postgre estoy utilizando eclipse para programar, todo esto bajo windows xp ademas ...
  #1 (permalink)  
Antiguo 26/04/2007, 13:13
 
Fecha de Ingreso: mayo-2006
Mensajes: 3
Antigüedad: 18 años
Puntos: 0
Conexion java postgre

Hola todos

alguien me podria decir como conectar paso a paso java con postgre estoy utilizando eclipse para programar, todo esto bajo windows xp ademas me podrian enviar algunos ejemplos de conexion o cualquier respuesta a mi correo [email protected]
  #2 (permalink)  
Antiguo 01/05/2007, 21:57
Avatar de PeterQB  
Fecha de Ingreso: diciembre-2006
Ubicación: La eterna primavera
Mensajes: 39
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Conexion java postgre

La conexion de postgres y java se hace como cualquier conexion por medio de JDBC lo que cambia es el controlador que manejas para cada uno de los manejadores, aqui te pongo un codigo que utilizo para hacer la conexion a mi servidor postgres


Código PHP:
public static int[][] crea_matriz_tramos(int a){ 

        
String url="jdbc:postgresql://localhost:5432/itinerarios"
        try 
            
           { 

        Class.
forName("org.postgresql.Driver").newInstance(); 
    
           
Connection conn DriverManager.getConnection (url"postgres""distribuidos"); 

             
Statement s conn.createStatement(); 
   
          
ResultSet rs null

           for(
int x 0x<ax++){ 
  
               
aux String.valueOf(x+1); 

                  
sql="SELECT gid_ady,gid_tramo FROM adyacencia_c WHERE gid_nodo=" aux

                   
rs s.executeQuery(sql); 

                  while(
rs.next()){ 

                         
matriz_ad[x][rs.getInt(1)-1] = rs.getInt(2); 
    
                 }  
           } 

           
s.close(); 
           
conn.close(); 
          } 

        catch( 
Exception e ){e.printStackTrace();} 

        return 
matriz_ad
    } 
algo asi como este codigo te deberia de funcionar
  #3 (permalink)  
Antiguo 01/05/2007, 23:13
Avatar de Nighter  
Fecha de Ingreso: enero-2007
Mensajes: 97
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Conexion java postgre

esta muy bien lo que explica PETERQB pero recuaerdo algunos ayeres cuando me inicie en esto de las bases de datos con java que me fue un poco dificil ya que solo encontraba ejemplos, sin tratar de ofender, algo complicados como el del buen PETER, por eso quei te mando una clase en la que he trabajado ya desde hace un rato y la he ido haciendo un poco mas robusta a la vez, cualquiera que la vea, por favor, sientase libre de mejorarla, es versatil, ya que se le puede agregar cualquier url de conexion para cualquier manejador y todo lo demas funciona (hasta ahora no me ha fallado despues de 3 años de uso), ok in mas preambulo aqui esta la clase Conector:

Código PHP:

package server
;

import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.Connection;
import java.util.Properties;
import java.sql.SQLException;
import javax.swing.JOptionPane
import org.postgresql.util.PSQLException;

public class 
Conector 

 private 
int numeroCols

 private 
Connection conn;    
 private 
ResultSet result;
 private 
Statement statement;
 private 
String rutaConexion;
  
{
 
numeroCols = -1;
}

 protected 
Conector(Properties prop
 {
  
rutaConexion "jdbc:postgresql://localhost:5432/omdb";
      
  
inicializarConexion(rutaConexionprop);
 }
 
 protected 
Conector(String hostString puertoProperties prop
 {
  
rutaConexion "jdbc:postgresql://" host ":"puerto +"/omdb";
      
  
inicializarConexion(rutaConexionprop);
 }
 
 private final 
void inicializarConexion(String rutaConexionProperties prop)
 {      
  try 
  {
   Class.
forName("org.postgresql.Driver");
   
conn java.sql.DriverManager.getConnection(rutaConexionprop);
   
statement conn.createStatement(ResultSet.TYPE_FORWARD_ONLYResultSet.CONCUR_UPDATABLEResultSet.HOLD_CURSORS_OVER_COMMIT);
  }
  catch(
PSQLException e)
  {
   
JOptionPane.showMessageDialog(null,e.getMessage()+". Acceso denegado","Error al acceder al sistema",JOptionPane.ERROR_MESSAGE);
   
System.exit(1);
  }
  catch (
SQLException e
  {
   
JOptionPane.showMessageDialog(null,e.getMessage()+". No se pudo accesar a la base de datos","Sin acceso, no se obtuvo conexion",JOptionPane.ERROR_MESSAGE);
   
System.exit(1);
  }  
  catch (
ClassNotFoundException e
  {
   
JOptionPane.showMessageDialog(null,e.getMessage()+". No se pudo establecer conexion con la base de datos","Sin conexion, el controlador no esta presente",JOptionPane.ERROR_MESSAGE);
   
System.exit(1);
  }
 } 
 
 public final 
ResultSet selectQuery(String querythrows PSQLExceptionSQLException 
 
{
  
result statement.executeQuery(query);       
  return 
result;    
 }

 public final 
void IUD(String querythrows PSQLExceptionSQLException 
 
{
  
statement.executeUpdate(query);         
 }
 
 public final 
void sp(String querythrows PSQLExceptionSQLException 
 
{
  
statement.execute(query);         
 }
  
 protected final 
void close() throws PSQLExceptionSQLException 
 
{
  if(
result != null)
   
result.close();
   
  if(
statement != null)
   
statement.close();
   
  if(
conn != null)
   
conn.close();     
 }

Clase Servidor (nunca me ha gustado hacer una conexion directa con la clase conexion mejor uso Singleton (creacion de solo una instancia) en la clase servidor)

Código PHP:
package server;

import java.util.Properties;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import org.postgresql.util.PSQLException;

public class 
Servidor 
{
 public static 
Conector conexion;
 public static 
Properties prop;
 
 
//Singleton
 
private final static Servidor servidor = new Servidor();
 
 private 
Servidor()
 {
  
prop = new Properties();
 }
 
 public static final 
void close()
 {
  
/*Debenos de recordar cerrar todos los flujos abiertos, como la base de batos o archivos o la impresora etc*/
  
try
  {        
   
conexion.close();
  }
  catch(
PSQLException e)
  {
   
JOptionPane.showMessageDialog(null,e.getMessage()+". Intento de cierre denegado por DBMS","Error al cerrar la conexion",JOptionPane.ERROR_MESSAGE);
   
System.exit(1);
  }
  catch (
SQLException e
  {
   
JOptionPane.showMessageDialog(null,e.getMessage()+". Intento de cierre denegado","Sin acceso, no se obtuvo cierre de conexion",JOptionPane.ERROR_MESSAGE);
   
System.exit(1);
  } 
 }
 
 
/**Metodo que intenta establecer la conexion con la base se datos*/
 
public static void attCon() 
 {
  
conexion = new Conector(prop);  
 }

por ultimo no olvides que debes tener los jar de postgresql incrustados en tu proyecto para que esto funcione ok?

espero que te sirva cualquier duda mi mail: [email protected]

Última edición por Nighter; 01/05/2007 a las 23:25
  #4 (permalink)  
Antiguo 05/05/2009, 21:09
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Exclamación Respuesta: Re: Conexion java postgre

Cita:
Iniciado por PeterQB Ver Mensaje
La conexion de postgres y java se hace como cualquier conexion por medio de JDBC lo que cambia es el controlador que manejas para cada uno de los manejadores, aqui te pongo un codigo que utilizo para hacer la conexion a mi servidor postgres


Código PHP:
public static int[][] crea_matriz_tramos(int a){ 

        
String url="jdbc:postgresql://localhost:5432/itinerarios"
        try 
            
           { 

        Class.
forName("org.postgresql.Driver").newInstance(); 
    
           
Connection conn DriverManager.getConnection (url"postgres""distribuidos"); 

             
Statement s conn.createStatement(); 
   
          
ResultSet rs null

           for(
int x 0x<ax++){ 
  
               
aux String.valueOf(x+1); 

                  
sql="SELECT gid_ady,gid_tramo FROM adyacencia_c WHERE gid_nodo=" aux

                   
rs s.executeQuery(sql); 

                  while(
rs.next()){ 

                         
matriz_ad[x][rs.getInt(1)-1] = rs.getInt(2); 
    
                 }  
           } 

           
s.close(); 
           
conn.close(); 
          } 

        catch( 
Exception e ){e.printStackTrace();} 

        return 
matriz_ad
    } 
algo asi como este codigo te deberia de funcionar

perdona si custiono un poco tu aporte, pero no ¿asi es como programas?, bueno no estroy tratando de ofender, pero en la forma que haces la conexion la veo media feita, ya que por ejemplo si en dado casi quieres cambiar el nombre de la base de datos y ponte que tengas como 50 conexiones del tipo que tu tienes, que como que tendrias que hacer o modificar 50 lineas de codigo, por eso mejor te recomiendo usar el modelo-vista-controlador, digo es mas facil, limpio y mejor organizado, almenos asi es como yo lo hago siempre. bueno te recomiendo si en dado caso lo realizas de esa forma cambiar al modelo que te estoy diciendo.
un saludo
  #5 (permalink)  
Antiguo 05/05/2009, 21:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Exclamación Respuesta: Re: Conexion java postgre

Cita:
Iniciado por PeterQB Ver Mensaje
La conexion de postgres y java se hace como cualquier conexion por medio de JDBC lo que cambia es el controlador que manejas para cada uno de los manejadores, aqui te pongo un codigo que utilizo para hacer la conexion a mi servidor postgres


Código PHP:
public static int[][] crea_matriz_tramos(int a){ 

        
String url="jdbc:postgresql://localhost:5432/itinerarios"
        try 
            
           { 

        Class.
forName("org.postgresql.Driver").newInstance(); 
    
           
Connection conn DriverManager.getConnection (url"postgres""distribuidos"); 

             
Statement s conn.createStatement(); 
   
          
ResultSet rs null

           for(
int x 0x<ax++){ 
  
               
aux String.valueOf(x+1); 

                  
sql="SELECT gid_ady,gid_tramo FROM adyacencia_c WHERE gid_nodo=" aux

                   
rs s.executeQuery(sql); 

                  while(
rs.next()){ 

                         
matriz_ad[x][rs.getInt(1)-1] = rs.getInt(2); 
    
                 }  
           } 

           
s.close(); 
           
conn.close(); 
          } 

        catch( 
Exception e ){e.printStackTrace();} 

        return 
matriz_ad
    } 
algo asi como este codigo te deberia de funcionar

perdona si cuestiono un poco tu aporte, pero no ¿asi es como programas?, bueno no estroy tratando de ofender, pero en la forma que haces la conexion la veo media feita, ya que por ejemplo si en dado casi quieres cambiar el nombre de la base de datos y ponte que tengas como 50 conexiones del tipo que tu tienes, que como que tendrias que hacer o modificar 50 lineas de codigo, por eso mejor te recomiendo usar el modelo-vista-controlador, digo es mas facil, limpio y mejor organizado, almenos asi es como yo lo hago siempre. bueno te recomiendo si en dado caso lo realizas de esa forma cambiar al modelo que te estoy diciendo.
un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 23:29.