Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Ayuden al novato con el jdbc en eclipse

Estas en el tema de Ayuden al novato con el jdbc en eclipse en el foro de PostgreSQL en Foros del Web. Buenas, mi problema es el siguiente. No encuentro documentacion en español sobre como usar el jdbc de postgresql en codigo de java, nose ni como ...
  #1 (permalink)  
Antiguo 23/11/2009, 09:07
Avatar de TyrantRC  
Fecha de Ingreso: noviembre-2009
Mensajes: 55
Antigüedad: 14 años, 4 meses
Puntos: 1
Ayuden al novato con el jdbc en eclipse

Buenas, mi problema es el siguiente.

No encuentro documentacion en español sobre como usar el jdbc de postgresql en codigo de java, nose ni como agregarlo bien a las librerias y es mi primera vez usando eclipse (antes usaba Netbeans).

Me descargue el driver postgresql-8.4-701.jdbc3.jar de la pagina oficial:
jdbc.postgresql.org/download.html

Me descargue la documentacion postgresql-jdbc-83-doc:
jdbc.postgresql.org/documentation/docs.html

Ya tengo instalado el Postgresql 8.4, el eclipse galileo ultima version, el jdk 1.5 porque lo pide el proyecto como requerimiento, y estoy trabajando en windows con tecnologia jsp y MVC.

Pero como esta en ingles y mi ingles es malo, entonces recurro al foro :(. Solo necesito un tuto de como hacer la conexion via codigo usando el driver. La verdad tambien soy nuevo con postgresql y jsp XD lo que he hecho lo he aprendido en menos de 1 mes y me quedan como 2 semanas para entregar el proyecto, es decir, estoy muy desesperado XD.

Gracias de antemano espero me puedan decir donde buscar info y eso :(. Seguire buscando en google
  #2 (permalink)  
Antiguo 24/11/2009, 01:39
Avatar de xdrtas  
Fecha de Ingreso: junio-2008
Ubicación: Venezuela
Mensajes: 97
Antigüedad: 15 años, 10 meses
Puntos: 13
Respuesta: Ayuden al novato con el jdbc en eclipse

Hola TyrantRC, mira, yo no sé de Java, sin embargo te voy a indicar los pasos según el manual.

Para la versión 1.4 y 1.5 del JDK se necesita el driver JDBC 3 y para la versión 1.6 en adelante se necesita la versión JDBC 4.
Tienes instalado el driver postgresql-8.4-701.jdbc3.jar <-- Esta es la versión correcta para tu versiónd del JDK. Por aquí vamos bien.
  1. Configurar la ruta hacia el driver mediante la variable de entorno CLASSPATH, ejemplo: export CLASSPATH=c:\archivos de programas\eclipse\tuaplicacion.jar:c:\Archivos de programa\java\postgresql.jar:
    Nota: desde línea de comandos de java puedes usar flags para la configuaración, pero no tengo idea en este momento de como se hace. Pero que sepas que existe esa posibilidad.
  2. Cuando crees una base de datos en PostgreSQL no uses codificación SQL_ASCII, usa UNICODE.
  3. Importar el driver para usarlo en la aplicación: import java.sql.*;
  4. Hay dos formas de cargar el driver, el punto 5 es el primero y el 6 el segundo:
  5. Class.forName("org.postgresql.Driver"); Cuando usas este método, no puedes usar otro gestor de base de datos distinto en tu aplicación.
  6. java -D jdbc.drivers=org.postgresql.Driver tuaplicacion //Con este método se carga el driver y una vez cargado se ejecuta la aplicación, lo que permite añadir otros drivers de bases de datos a una misma aplicación.
  7. Ahora la cadena de conexión: String url = "jdbc:postgresql://localhost/test?user=xdrtas&password=tucontraseña";
  8. La clase para conectarte:Connection conn = DriverManager.getConnection(url);
  9. Una forma de construir la cadena de conexión de forma más elegante es usando la clase Properties, ejemplo:
    String url = "jdbc:postgresql://localhost/test";
    Properties props = new Properties();
    props.setProperty("user","xdrtas");
    props.setProperty("password","tucontraseña");
    Connection conn = DriverManager.getConnection(url,props);

    Por supues, puedes añadir más parámetros a tu cadena de conexión.
  10. Ahora una pequeña consulta:
    Statement st = conn.createStatement();
    ResultSet rs = st.executeQuery("SELECT * FROM mytable WHERE columnfoo = 500");
    while (rs.next()) {
    System.out.print("Column 1 returned ");
    System.out.println(rs.getString(1));
    }
    rs.close();
    st.close();

Por último te pongo como creo yo que debería quedar una pequeña aplicación:
Código java:
Ver original
  1. import java.sql.*;
  2.  
  3. Class.forName("org.postgresql.Driver");
  4.  
  5. String url = "jdbc:postgresql://localhost/test";
  6. Properties props = new Properties();
  7. props.setProperty("user","xdrtas");
  8. props.setProperty("password","tucontraseña");
  9. Connection conn = DriverManager.getConnection(url,props);
  10.  
  11. Statement st = conn.createStatement();
  12. ResultSet rs = st.executeQuery("SELECT * FROM mytable WHERE columnfoo = 500");
  13. while (rs.next()) {
  14.     System.out.print("Column 1 returned ");
  15.     System.out.println(rs.getString(1));
  16. }
  17. rs.close();
  18. st.close();

Yo no sé de Java, esto lo hice con la documentación que pusiste, ("jdbc.postgresql.org/documentation/docs.html").
Este ejemplo puede que tenga errores porque yo no sé de Java, aunque no creo que esté muy desencaminado, si alguién sabe algo mejor, espero que lo postee, mientras puedes ir probrando e ir corrigiendo donde me haya equivocado.

Recuerda que tienes que configurar la variable de entorno CLASSPATH primero que nada.

Saludos y espero que te sirva.
  #3 (permalink)  
Antiguo 25/11/2009, 20:15
Avatar de TyrantRC  
Fecha de Ingreso: noviembre-2009
Mensajes: 55
Antigüedad: 14 años, 4 meses
Puntos: 1
Sonrisa Respuesta: Ayuden al novato con el jdbc en eclipse

Me funciono a la perfeccion =D. Muchas gracias, no es muy diferente de mysql

PD:Jeje me toca aprender ingles XD, se ve que ayuda mucho =)
  #4 (permalink)  
Antiguo 26/11/2009, 00:51
Avatar de TyrantRC  
Fecha de Ingreso: noviembre-2009
Mensajes: 55
Antigüedad: 14 años, 4 meses
Puntos: 1
Ahora tengo un nuevo problema XD

Creo que el problema es de java pero no se si sea de postgresql asi que lo posteo aki tambien.

Hago todo como dice arriba pero cuando voy a ejecutar un query que llame a un campo de la tabla, por ejemplo:

select * from alumno where "primerNombreAlumno"='luis';

no me da error en postgresql pero si en java porke al meterlo en el metodo:
stm.executeQuery("select * from alumno where "primerNombreAlumno"='luis';");

el string se cierra en:
"select * from alumno where "

y no llega a la parte de:
primerNombreAlumno"='luis';" porke rebota con un error

Mi pregunta es como hago ese query que me funcione de otra forma=? sin esas comillas dobles. o como hago para poner comillas dobles dentro de java en un string =?
  #5 (permalink)  
Antiguo 26/11/2009, 04:15
Avatar de xdrtas  
Fecha de Ingreso: junio-2008
Ubicación: Venezuela
Mensajes: 97
Antigüedad: 15 años, 10 meses
Puntos: 13
Respuesta: Ahora tengo un nuevo problema XD

Cita:
Iniciado por TyrantRC Ver Mensaje
no me da error en postgresql pero si en java porke al meterlo en el metodo:
stm.executeQuery("select * from alumno where "primerNombreAlumno"='luis';");
La verdad es que este post es todo de Java, no es un problema del postgres. El error es porque estás construyendo mal la cadena por lo que puedo apreciar. Tratandose de un lenguaje basado en el estandar ECMA la cadena de consulta la tienes que construirl usando el caracter de escape "\" para que las comillas sean interpretadas por el compilador como parte de la cadena de texto, así:

Código java:
Ver original
  1. stm.executeQuery("select * from alumno where \"primerNombreAlumno\"='luis'");
  2.  
  3. //Si no te funciona la primera sentencia entonces prueba con esta otra...
  4. stm.executeQuery("select * from alumno where \"primerNombreAlumno\"=\'luis\'");

Dentro del string NO termines la sentencia SQL con el punto y coma ";".

Espero tu respuesta, saludos.
  #6 (permalink)  
Antiguo 26/11/2009, 16:49
Avatar de TyrantRC  
Fecha de Ingreso: noviembre-2009
Mensajes: 55
Antigüedad: 14 años, 4 meses
Puntos: 1
De acuerdo Respuesta: Ayuden al novato con el jdbc en eclipse

=D pues muchas gracias, me resolviste la duda. No me acordaba de eso. Es ese tipo de cosa que piensas que nunca utilizaras y se te olvida xD.

Me voy al foro de java para preguntar alla cosas xD
  #7 (permalink)  
Antiguo 16/09/2010, 12:04
 
Fecha de Ingreso: mayo-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Ayuden al novato con el jdbc en eclipse

hola que tal.. amigos tengo una pequeña duda. no se como actualizar un registro en una base de datos mysql utilizando el conector mysql-connector-java-5.0.7-bin.jar. tengo mi formulario el cual ya lo cargue mediante una consulta que lo ise pasandole el numero de pasaporte como argumento principal
dichos campos van a estar editables en mi formulario, los cuales ya estan precargados en unos jtextfiel,jtexarea y jconbox. aparte de esto tengo dos botones uno de guardar y el otro de cancelar la actualizacion.
una vez que escoja el boton actualizar este me va a tomar el numero de pasaporte lo va a comparar con el numero pasaporte ya existente en la tabla, y va a tomar los campos que ya estan cargos dependiendo de la consulta que ise anteriormen nombre apellido... otros... y los va a actualizar. ejemplo
de la instrucion sql que quiero ejecutar.

UPDATE mitabla SET
"+ "NOMBRE='"+ nombre que priviene de jtextfiel del formulario+ "',
apellido="+apellido que priviene de jtextfiel del formulario+"
WHERE numero_de_pasaporte=" + numero_de_pasaporte del formulario+";

ESTO ES LO QUE QUIERO HACER PERO NO SE COMO. SABE Y QUIERE COMPARTIR SU CONOCIMIENTO LE ESTARIA MUY AGRADECIDO
  #8 (permalink)  
Antiguo 17/09/2010, 08:00
Avatar de xdrtas  
Fecha de Ingreso: junio-2008
Ubicación: Venezuela
Mensajes: 97
Antigüedad: 15 años, 10 meses
Puntos: 13
Respuesta: Ayuden al novato con el jdbc en eclipse

Hola juanjosemoreno,
Cita:
Iniciado por juanjosemoreno Ver Mensaje
hola que tal.. amigos tengo una pequeña duda. no se como actualizar un registro en una base de datos mysql utilizando el conector mysql-connector-java-5.0.7-bin.jar. tengo mi formulario el cual ya lo cargue mediante una consulta que lo ise pasandole el numero de pasaporte como argumento principal
dichos campos van a estar editables en mi formulario, los cuales ya estan precargados en unos jtextfiel,jtexarea y jconbox. aparte de esto tengo dos botones uno de guardar y el otro de cancelar la actualizacion.
una vez que escoja el boton actualizar este me va a tomar el numero de pasaporte lo va a comparar con el numero pasaporte ya existente en la tabla, y va a tomar los campos que ya estan cargos dependiendo de la consulta que ise anteriormen nombre apellido... otros... y los va a actualizar. ejemplo
de la instrucion sql que quiero ejecutar.

UPDATE mitabla SET
"+ "NOMBRE='"+ nombre que priviene de jtextfiel del formulario+ "',
apellido="+apellido que priviene de jtextfiel del formulario+"
WHERE numero_de_pasaporte=" + numero_de_pasaporte del formulario+";

ESTO ES LO QUE QUIERO HACER PERO NO SE COMO. SABE Y QUIERE COMPARTIR SU CONOCIMIENTO LE ESTARIA MUY AGRADECIDO
Te recomiendo que hagas esta pregunta en el foro de Java, ellos seguro están mejor informados que yo. Lo único que te puedo recomendar es que compruebes si al hacer consultas SELECT tienes problemas para obtener los datos de las consultas. Si no tienes problemas en obtener los datos con las consultas SELECT entonces es que tienes un problema con la sentencia UPDATE o que al construir la cadena del UPDATE no pasas bien los parámetros.
Pregunta en el foro de Java y revisa la construcción de tu sentencia UPDATE.
Si usas NetBeans 6.9/6.8 asegurate de que se establece bien la conexión con tu MySQL. NetBeans cuenta con la herramienta adecuada para establecer la conexión con servidores de bases de datos.

Un cordial saludo.
__________________
¿Cuál es el mejor lenguaje para programar?
Aquel lenguaje por el cual te paguen más.
[--::xdrtas.coolpage.biz::--]
[---:::xdrtas:::---]
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




La zona horaria es GMT -6. Ahora son las 16:06.