java - jdbcodbcdriver - jdbc-odbc bridge driver download
EliminaciĆ³n del puente JDBC ODBC en java 8 (6)
¿Hay alguna otra solución que conecte JDBC-ODBC Bridge?
Las posiciones oficiales de Sun y Oracle han sido durante mucho tiempo eso:
el puente [JVM-bundled] JDBC-ODBC debe considerarse una solución de transición [...] Oracle no admite el puente JDBC-ODBC.
Sin embargo, mi empleador, OpenLink Software , ha producido Puentes Tipo 1 comerciales de nivel empresarial entre JDBC y ODBC desde JVM 1.0, y estos son totalmente compatibles con el JVM 1.8 actual. Puedes aprender más aqui --
- Controlador de puente JDBC-ODBC de nivel único : un controlador JDBC para orígenes de datos ODBC
- Controlador de puente ODBC-JDBC de nivel único : un controlador ODBC para fuentes de datos JDBC
A partir de Java 8, el puente JDBC-ODBC ya no se incluirá con el JDK.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // classNotFoundException is thrown
¿Hay alguna otra solución que conecte JDBC-ODBC Bridge?
Bueno, en mi opinión, esta entrada de blog de un empleado de Oracle lo dice todo:
Le recomendaría que utilice un controlador JDBC proporcionado por el proveedor de su base de datos o un controlador JDBC comercial en lugar del puente JDBC-ODBC.
¿Para qué tipo de aplicación está utilizando el puente JDBC-ODBC?
- Si se trata de un código de producción, en mi humilde opinión debe reemplazar el puente con un controlador real y la base de datos heredada con una verdadera.
- Si es un código de prueba que interactúa con un Access DB, una hoja de cálculo de Excel o cualquier otra cosa a la que pueda acceder a través de ODBC, intente reemplazarlo con una base de datos Java pura como H2
- Si lo usa para acceso ad-hoc a los DB de acceso heredados para, por ejemplo, desarrollo y / o propósitos analíticos, y realmente no puede o no quiere actualizar nada, puede mantener un JDK 7 por bastante tiempo. hasta su fecha de fin de vida y probablemente mucho más allá de eso
Encontré una solución razonable que permite el uso del código existente con un cambio solo para abrir la lógica de conexión de la base de datos.
UCanAccess es un controlador JDBC de fuente abierta.
http://ucanaccess.sourceforge.net/site.html
Eso tiene dos dependencias, una de las cuales tiene dos dependencias más.
jackcess-2.0.0.jar o posterior
commons-lang-2.4.jar
commons-logging-1.0.4.jar
hsqldb.jar (2.2.5)
Esos son todos de código abierto. Haga una búsqueda en Internet, descargue, descomprima si es necesario y coloque los cuatro jar más el de UCanAccess en un directorio de su proyecto (por ejemplo, JDBC-to-MSAccess). Si usa Ecplise, agregue a su ruta de compilación eligiendo desde el menú "Proyecto / Propiedades / Compilador Java / Bibliotecas / Agregar JAR Externos" y seleccione los cinco archivos jar.
La lógica de conexión es realmente simple:
String strConnectionString = "";
Connection conAdministrator = null;
// Register driver
Class.forName( "net.ucanaccess.jdbc.UcanaccessDriver" );
// System.getProperty( "user.dir" ) => Current working directory from where application was started
strConnectionString = "jdbc:ucanaccess://" + System.getProperty( "user.dir" ) + "//Your-database-name.<mdb or accdb>";
// Open a connection to the database
conAdministrator = DriverManager.getConnection( strConnectionString );
Robert Petermeier dio un buen punto H2 unidades admite ODBC a través del controlador PostgreSQL, y puede instalar el controlador en consecuencia el enlace de Configuración de PostgreSQL ODBC en Windows
Sé que esta pregunta fue respondida hace mucho tiempo, pero quería resaltar el secuela de DataDirect. En este blog https://www.progress.com/blogs/jdbc-odbc-bridge-replacement-yields-performance-boost el autor habla de cómo su puente puede producir un aumento del rendimiento del 310%. La versión de prueba del puente se puede descargar aquí: https://www.progress.com/jdbc/sequelink
Todavía podemos usar JDBC-ODBC Bridge en Java 8 también, solo sigue esta receta simple:
- Descargue un JDK 7 o JRE 7.
- Ir a la carpeta JRE / lib y encontrar el rt.jar
- Descomprímelo (si tiene WinRAR o 7zip instalado) o puede cambiarle el nombre a rt.zip y descomprimirlo.
Copie las carpetas sun / jdbc y sun / security / action, mantenga la estructura de la carpeta. es decir, debe tener la estructura de carpetas como a continuación:
Sun --> Security --> Action --> JDBC
Abra una ventana de CMD. Vaya a la carpeta principal de la carpeta Sun. Ejecute el comando:
jar -cvf jdbc.jar sun
- El comando anterior creará un archivo llamado jdbc.jar
- Copie JDBC.jar a su carpeta de
lib
JDK8 o JRE8. Si eso no funciona, pruebe la carpetalib/ext
. - Copie jdbcodbc.dll de JRE / bin de su instalación de JRE 7 en JRE / bin de su instalación de JRE 8.
- Reinicia tu JVM.