conexion entre java y postgresql

Forums: 

hola amigos,
Quiero conectar java con postgresql de forma nativa, es decir sin utilizar JDBC, he buscado y solo encuentro JDBC, lo que quiero es que la conexión se realize con rápidez, gracias :? .

No he visto nada como eso,

Imagen de deathUser

No he visto nada como eso, supongo que habrá como hacerlo en C con algún API de postgres, si es ese el caso, podrías usar JAVA NATIVE para invocar esos métodos ...

Pero JDBC es el estándar y es lo mejor que podrías usar a mi criterio ...

bye
:)

Recomendacion

Hola, te recomiendo entrar al irc de java y les comentes a ver que te dicen

[b]Siempre existe una razon mas para amar la Libertad... ama tu GNU/Linux[/b]

[b]question = ? be : !be; [/b]

Lo mejor que puedes hacer es

Imagen de barahonachrism

Lo mejor que puedes hacer es utilizar un JDBC de tipo 2 (JDBC 2).

Este tipo de JDBC utiliza librerías nativas proporcionadas por la base de datos.

Esencialmente convierte las llamadas JDBC en llamadas nativas de la API de la base de datos(JDBC Drivers).

Para Postgres 8.3 tenemos el driver 8.3-603 JDBC 2. Para otras versiones tenemos JDBC downloads

Creo que es la mejor opción, y también tener buena memoria RAM si trabajas con java. :-)

Espero haberte ayudado.

La vida de un estudiante es el sacrificio, y su recompensa, ¡el éxito!

Algunas preguntas...

Imagen de a_villacis

Por qué considera usted que JDBC (de cualquier tipo) es demasiado lento? Ha intentado realizar pruebas de rapidez? Una posible prueba es la de preparar un programa de ejemplo en Java que realice una sola operación simple (digamos, ejecutar una transacción bancaria) en PostgreSQL, con toda la lista de peticiones SQL requeridas para ello, y luego preparar un programa que realice la misma operación en otro lenguaje (digamos C o C++), y así determinar si uno de los dos es significativamente más rápido que el otro.

Si usted está interesado en mejorar el rendimiento de su aplicación, primero debe de determinar la causa de la demora más grande en las operaciones. Frecuentemente (por experiencia propia) la principal causa de demoras (y por lo tanto primer candidato para optimización) es la secuencia de operaciones de E/S dentro del propio motor de base de datos. Comparado con esto, el código de aplicación (sin importar el lenguaje) ocupa una parte ínfima del periodo de ejecución, porque se reduce a validación y preparación de los parámetros para las sentencias SQL, más la presentación de los resultados. El estilo de llamado al API de la base de datos (JDBC versus nativo) pertenece del lado del cliente, y contribuye casi nada al rendimiento. Algunas recomendaciones que me han servido a mí para optimizar las operaciones en la base de datos:

  1. VERIFIQUE SUS ÍNDICES!!! Muchas veces una sentencia SELECT se demora porque la combinación de condiciones WHILE no puede acelerarse a través de un índice, sea porque no existe ninguno, o porque indexan las columnas incorrectas. Por ejemplo, un índice sobre la columna de teléfonos de una lista de un millón de clientes no puede asistir si la operación primaria es la de buscar por nombre o apellido. Investigue qué herramientas ofrece su base de datos para mostrar cómo intenta buscar el motor de base de datos su conjunto de registros. En MySQL, es "EXPLAIN SELECT ...", así que busque el equivalente en PostgreSQL.
  2. Reconsidere sus bucles sobre los resultados: He visto varias veces código que pide un recordset muy grande (con un WHILE muy poco preciso, o incluso sin WHILE), y luego intenta filtrar los resultados con código de aplicación, o con un bucle en un procedimiento almacenado. Estas operaciones son extremadamente ineficientes, y pueden frecuentemente reemplazarse con SELECT DISTINCT, o con ajustes a la condición WHILE.
  3. Reconsidere SELECTS repetitivos:A mí me ha ocurrido al menos una vez que (sin darme cuenta) termino para una operación en particular, ejecutando una misma sentencia SQL con valores distintos, porque la sentencia es parte de una subrutina que está metida dentro de un bucle. En este caso, una vez identificado, es más eficiente proveer una versión que realice el SELECT una sola vez.
  4. Use conexiones persistentes: si la arquitectura de su aplicación o framework lo permite, use o permita usar la misma conexión para múltiples operaciones. Esto debe hacerse si las sugerencias anteriores no funcionan por completo. Por ejemplo, una conexión JDBC se puede guardar en una sesión de servlet hasta donde me acuerdo. PHP ofrece versiones persistentes de sus APIs de conexión. Y así sucesivamente. De esta manera, cualquier demora al realizar la conexión (distinta de la demora en realizar operaciones SQL individuales) se amortiza a través de múltiples operaciones.

Note por favor que estas recomendaciones no son las únicas posibles. Un examen cuidadoso del uso de SQL por parte de su aplicacion puede revelar oportunidades adicionales de optimización. Recuerde siempre que debe poder producir números, de cuánto se demora la operación antes del cambio, versus cuánto se demora después, para poder comparar objetivamente.

perl -e '$x = 2.4; print sprintf("%.0f + %.0f = %.0f\n", $x, $x, $x + $x);'

perl -e '$x = 2.4; print sprintf("%.0f + %.0f = %.0f\n", $x, $x, $x + $x);'

lo que yo queria era saber

lo que yo queria era saber si aparte de JDBC existia otra forma de conexion con la base de datos Postgres, y no es que considere lento a JDBC, solo queria descartar otras alternativas, gracias a todos por sus consejos, ya tengo instalado el driver de JDBC :)

Si quieres utilizar java es

Imagen de barahonachrism

Si quieres utilizar java es lo estándar, pero si quieres otras opciones existe por ejemplo en open office lo que se llama SBDC, pero claro está sirve para conectar nativamente Open Office con una base de datos. Pero claro está, es un driver dedicado para open office nada más.

Entiende que JDBC significa Java Data Base Conectivity, es el estándar de comunicación con las bases de datos desde aplicaciones con java.

Pero insisto, si quieres una aplicación de escritorio en donde la base de datos está en la misma máquina, te recomiendo JDBC tipo 2, para aplicaciones remotas o web JDBC 3 o 4.

No utilizes el puente JDBC-ODBC en lo posible, se disminuye notablemente el rendimiento, mira que las sentencias jdbc se convierten en sentencias odbc y viceversa.

Si quieres mejor rendimiento puedes actualizar tu JVM a la version 6 (Mustang), notable con relación a JVM 1.5, si no me crees levanta una instancia de JBoss con diferentes versiones de java y ve la diferencia.

El problema de rendimiento de java fue un mito por la falta de capacidad de las viejas computadoras.

Ten en cuenta que los nuevos lenguajes de hoy son primero orientados a objetos y de generación de código intermedio, ruby, python, java, perl, php, .net, etc. Todos con buen rendimiento.

La vida de un estudiante es el sacrificio, y su recompensa, ¡el éxito!

tengo un inconveniente al

tengo un inconveniente al conectar postgres con java, la situacion es la siguiente:
Todo se ejecuta con normalidad, al ejecutar desde una terminal el siguiente código:

CLASSPATH=/usr/java/postgresql-8.2-508.jdbc3.jar:.
export CLASSPATH

Pero esto debo ejecutarlo en cada terminal que ejecute un ejemplo, ademas no puede ejecutar este tipo de ejemplos desde eclipse, intente colocar esto en .bash_profile, pero nada, alguna sugerencia?
gracias. :?

Intenta colocarlo en

Imagen de acl

Intenta colocarlo en .bashrc, dependiendo de la distribución es posible que las terminales gráficas lean ese en lugar del profile.

--
haber != a ver
ha != a