SQLException: No se ha encontrado un controlador adecuado para jdbc: derby: // localhost: 1527

Recibo este error en Netbeans:

java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/ 

¿Cómo es esto causado y cómo puedo resolverlo?

java.sql.SQLException: No se encontró un controlador adecuado para jdbc: derby: // localhost: 1527 /

Esta excepción tiene dos causas:

  • El controlador no está cargado.
  • La URL JDBC está mal formada.

En su caso, esperaría ver un nombre de base de datos al final de la cadena de conexión. Por ejemplo (use create=true si desea que se cree la base de datos si no existe):

 jdbc:derby://localhost:1527/dbname;create=true 

Las bases de datos se crean de forma predeterminada en el directorio donde se inició el servidor de red. Pero también puede especificar una ruta absoluta a la ubicación de la base de datos:

 jdbc:derby://localhost:1527//home/pascal/derbyDBs/dbname;create=true 

Y por si acaso, compruebe que derbyclient.jar está en la ruta de la clase y que está cargando el controlador apropiado org.apache.derby.jdbc.ClientDriver cuando se trabaja en modo servidor.

Aviso: puedes descargarlo desde aquí .

Si no puedes encontrarlo, entonces

  1. Encuentre su proyecto en la pestaña de selección de proyectos

  2. Haga clic derecho en “Bibliotecas”

  3. Haga clic en “Agregar JAR / Carpeta …”

  4. Elija “derbyclient.jar”

  5. Haga clic en “Abrir”, luego verá “derbyclient.jar” debajo de sus “Bibliotecas”

Asegúrate de que tu URL, nombre de usuario, contraseña sean correctos y ejecuta tu código 🙂

Para mi

 DriverManager.registerDriver(new org.apache.derby.jdbc.EmbeddedDriver()); 

ayudado. De esta forma, DriveManager conoce el derby EmbeddedDriver. Tal vez asignar un nuevo EmbeddedDriver es pesado, pero en el otro lado, Class.forName necesita try / catch / doSomethingIntelligentWithException que no me gusta mucho.

El JDBC DriverManager no puede encontrar ningún Driver adecuado para la URL de conexión dada. O el controlador JDBC no se carga en absoluto antes de conectar el DB, o la URL de conexión es incorrecta. Dado que la URL de conexión se ve bien, apuesto a que el controlador no está cargado en absoluto. Debe cargar el controlador durante el inicio de la aplicación antes de conectar la base de datos. Para Apache Derby, el nombre de clase del controlador es org.apache.derby.jdbc.ClientDriver . Asi que:

 Class.forName("org.apache.derby.jdbc.ClientDriver"); 

Tuve el mismo problema cuando escribía la aplicación Java en Netbeans. Aquí está la solución:

  1. Encuentre su proyecto en la pestaña de selección de proyectos

  2. Haga clic derecho en “Bibliotecas”

  3. Haga clic en “Agregar JAR / Carpeta …”

  4. Elija “derbyclient.jar”

  5. Haga clic en “Abrir”, luego verá “derbyclient.jar” debajo de sus “Bibliotecas”

  6. Asegúrese de que su URL, nombre de usuario, palabra clave sea correcta y ejecute su código 🙂

Si utilizas Derby integrado necesitarás Derby.jar en tu classpath.

La pregunta es respondida pero proporciona una línea de comando para ilustración. Esto funcionó para mí cuando intentaba una prueba lo más simple posible para conectarme al modo de red derby.

  • Controlador cargado en la aplicación con: Class.forName (“org.apache.derby.jdbc.ClientDriver”). NewInstance ();

  • La URL de conexión era: “jdbc: derby: // localhost: 1527 / myDB; create = true”

  • Ejecuté mi aplicación usando: java-classpath derbyclient.jar :. myAppClass

Lo resolví agregando la biblioteca a la consola de la biblioteca debajo de mi proyecto:

  • Haga clic derecho y luego agregue la biblioteca
  • agregar JAVA DB DRIVER.

Mi proyecto está funcionando!

Estaba enfrentando el mismo problema. Me faltaba la llamada a DriverManager.registerDriver (), antes de obtener la conexión usando la URL de conexión y las credenciales del usuario.

Se arregló en Linux como a continuación:

 DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver()); connection = DriverManager.getConnection("jdbc:derby://localhost:1527//tmp/Test/DB_Name", user, pass); 

Para ventanas:

 DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver()); connection = DriverManager.getConnection("jdbc:derby://localhost:1527/C:/Users/Test/DB_Name", user, pass); 

También es posible que en persistence.xml, se usó EmbeddedDriver mientras que la url jdbc apuntaba al servidor Derby. En este caso, simplemente cambie la URL para señalar una ruta de la base de datos.

si la base de datos se crea y usted ha iniciado la conexión a, entonces todo lo que necesita es agregar el contenedor de controladores. desde la ventana del proyecto, haga clic con el botón derecho en la carpeta de bibliotecas, vaya a c: programsfiles \ sun \ javadb \ lib \ derbyclient.jar. carga el archivo y deberías poder ejecutarlo

todo lo mejor

Intenté todo lo mencionado en este hilo y solo .registerDriver () funcionó para mí. Así es como mi parte del código se ve ahora:

 DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver()); connection = DriverManager.getConnection(url, user, pass); 

Tenga en cuenta que el problema no estaba en Derby integrado.

También puede obtener el mismo error si el servidor Java DB no se ha iniciado.

Es posible que falte iniciar el servidor de Derby. Una vez que se inicia el servidor derby, comienza a escuchar el puerto predeterminado 1527.

El script de inicio se encuentra de la siguiente manera:

Windows:

  /bin/startNetworkServer.bat 

Linux:

  /bin/startNetworkServer 

Este error ocurre cuando la syntax de la cadena de conexión no es válida.

Puede usar la cadena de conexión como

 'jdbc:derby:MyDbTest;create=true' 

o

Puede usar el siguiente comando en el símbolo del sistema, el siguiente comando crea una nueva base de datos llamada MyDbTest éxito:

 connect 'jdbc:derby:MyDbTest;create=true'; 

Me topé con este problema, intenté con todas las sugerencias anteriores pero aún así fallé. Sin repetir lo que se ha sugerido anteriormente, aquí están las cosas que (usted) pueden estar perdiendo: en caso de que esté utilizando maven, probablemente establezca las dependencias, es decir:

 org.apache.derby derbyclient 10.10.1.1 

Tenga cuidado con la versión. Debe ser compatible con la instancia de servidor que está ejecutando.

Resolví mi caso renunciando a las dependencias de maven proporcionadas y añadiendo manualmente un jar externo desde “% JAVA_HOME% \ db \ lib”, la misma fuente de mi servidor en ejecución. En este caso, estoy probando usando mi Local.

Entonces, si está probando con una instancia de servidor remoto, busque el derbyclient.jar que viene con el paquete del servidor.

Me enfrenté a un problema similar y se resolvió al incluir los jarros derby.jar, derbyclient.jar, derbynet.jar y derbytools.jar en su classpath en eclipse.

Sigue los pasos-

  1. Haga clic derecho en su proyecto y seleccione Build path -> Configure build path.
  2. Vaya a la pestaña de bibliotecas y haga clic en ‘Agregar JAR externos’.

  3. Seleccione los archivos jar mencionados arriba, por ejemplo, C: \ Program Files \ Java \ jdk1.8.0_161 \ db \ lib

  4. Haga clic en Aceptar.

Espero que esto ayude 🙂