java jdbc driver derby

java.sql.SQLException: No se encontrĂ³ un controlador adecuado para jdbc: derby:



driver (2)

Cuando invoca el comando java con los parámetros -jar y -classpath , se -classpath parámetro -classpath . Consulte la documentación del iniciador de Java .

Puedes usar:

Unix / Linux:

java -classpath derbyclient.jar:TestDB.jar TestDB

Windows:

java -classpath derbyclient.jar;TestDB.jar TestDB

o hacer un manifiesto que agregue derbyclient.jar al classpath.

Soy un principiante con jdbc ... Tengo un problema al ejecutar este código:

Este código usa Apache Derby y para que funcione, primero inicié el servidor derby.

java -jar "C:/Program Files/Sun/JavaDB/lib/derbyrun.jar" server start

Y luego comenzó el programa

java -classpath derbyclient.jar -jar TestDB.jar

Establecí la ruta de clase C: / Archivos de programa / Sun / JavaDB / lib / derby.jar

Y siempre obtengo esa excepción

java.sql.SQLException: No se encontró un controlador adecuado para jdbc: derby: // localhost: 1527 / BOOKDB; create = true en java.sql.DriverManager.getConnection (DriverManager.java:602) en java.sql.DriverManager.getConnection ( DriverManager.java:185) en TestDB.getConnection (TestDB.java:63) en TestDB.runTest (TestDB.java:20) en TestDB.main (TestDB.java:11)

import java.sql.*; import java.io.*; import java.util.*; class TestDB { public static void main(String args[]) { try { runTest(); } catch (SQLException ex) { for (Throwable t : ex) t.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } public static void runTest() throws SQLException, IOException { Connection conn = getConnection(); try { Statement stat = conn.createStatement(); stat.executeUpdate("CREATE TABLE Greetings (Message CHAR(20))"); stat.executeUpdate("INSERT INTO Greetings VALUES (''Hello, World!'')"); ResultSet result = stat.executeQuery("SELECT * FROM Greetings"); if (result.next()) System.out.println(result.getString(1)); result.close(); stat.executeUpdate("DROP TABLE Greetings"); } finally { conn.close(); } } public static Connection getConnection() throws SQLException, IOException { Properties props = new Properties(); FileInputStream in = new FileInputStream("database.properties"); props.load(in); in.close(); String drivers = props.getProperty("jdbc.drivers"); if (drivers != null) System.setProperty("jdbc.drivers", drivers); String url = props.getProperty("jdbc.url"); String username = props.getProperty("jdbc.username"); String password = props.getProperty("jdbc.password"); return DriverManager.getConnection(url, username, password); } }


Cuando utiliza -jar , -classpath se ignora. Desde los documentos de la herramienta de comando java :

Cuando utiliza esta opción, el archivo JAR es el origen de todas las clases de usuario y se ignoran otras configuraciones de ruta de clase de usuario.

Utilice -classpath sin -jar y especifique explícitamente el tipo que contiene el método principal, o haga que su manifiesto de archivo jar haga referencia al archivo jar derby.