java.sql.SQLException:没有为jdbc:derby找到合适的驱动程序:
我是jdbc的初学者……我在运行此代码时遇到问题:
这段代码使用appache derby,为了使它工作我首先启动了derby服务器..
java -jar "C:\Program Files\Sun\JavaDB\lib\derbyrun.jar" server start
然后启动程序
java -classpath derbyclient.jar -jar TestDB.jar
我设置了类路径C:\ Program Files \ Sun \ JavaDB \ lib \ derby.jar
我总是得到那个例外
java.sql.SQLException:没有为jdbc找到合适的驱动程序:derby:// localhost:1527 / BOOKDB; java.sql.DriverManager.getConnection(DriverManager.java:602)中的create = true at java.sql.DriverManager.getConnection( DriverManager.java:185)位于TestDB.runTest(TestDB.java:20)的TestDB.getConnection(TestDB.java:63)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); } }
使用-jar
和-classpath
参数调用java
命令时,将忽略-classpath
参数。 请参阅Java启动程序的文档 。
你可以使用:
在Unix / Linux:
java -classpath derbyclient.jar:TestDB.jar TestDB
视窗:
java -classpath derbyclient.jar;TestDB.jar TestDB
或者创建一个将derbyclient.jar添加到类路径的清单。
使用-jar
,将忽略-classpath
。 从java
命令工具docs :
使用此选项时,JAR文件是所有用户类的源,并忽略其他用户类路径设置。
使用-classpath
而不使用-jar
并明确指定包含main方法的类型,或者使jar文件清单引用derby jar文件。