2016-12-17 70 views
0

我試圖運行一個代碼,它使用Ant構建器連接到SQLite數據庫。連接時,我收到一個「java.sql.SQLException:找不到適合org.sqlite.JDBC的驅動程序」。SQLException:找不到合適的org.sqlite.JDBC驅動程序

我把jar-connecter放到「lib」文件夾中,但不知道我是否正確地在build.xml中描述它。你能否指出我的錯誤。

我的Ant build.xml文件片段:

private static final String JDBC_DRIVER = "org.sqlite.JDBC"; 
    Class.forName(JDBC_DRIVER); 
    System.out.println("Connection to database..."); 
    con = DriverManager.getConnection(JDBC_DRIVER); 
    System.out.println("Connection is ok") 

回答

2

你傳遞一個不恰當的價值DriverManager.getConnection

<target name="copy-res" description="Copying resources"> 
    <copy todir="${classes.dir}"> 
     <fileset dir="${res.dir}"/> 
    </copy> 
</target> 

<target name="build" depends="compile, copy-res" description="Build all samples"/> 

<target name="run" depends="build" description="Runs sample"> 
    <java classname="ViewConsole" fork="true" classpathref="sqlite.classpath"> 
    <classpath> 
     <pathelement path="${classes.dir}"/> 
    </classpath> 
    </java> 
</target> 

<!-- sqlite driver directory --> 
<path id="sqlite.classpath"> 
<fileset dir="lib"> 
    <include name="sqlite-jdbc-3.15.1.jar"/> 
</fileset> 
</path> 

我試圖連接到數據庫的方式。它的意思是一個JDBC URL--你只是傳入一個類名。

的JDBC URL的SQLite會像

"jdbc:sqlite:/home/leo/work/mydatabase.db" 
+0

感謝,它幫助!但現在我找到類未找到java.lang.ClassNotFoundException:jdbc:sqlite:resources/SQLPlanner.db –

+0

您是否將此類傳遞給'Class.getClass'?聽起來像是這樣。我沒有建議改變這條線......儘管我懷疑你根本不需要它。基本上,'Class.forName'接受一個類名,'DriverManager.getConnection'接受一個JDBC URL。那些幾乎不會是同一件事... –

+0

我發送它到Class.forName(),你是對的。現在與DriverManager.getConnection()它終於起作用。非常感謝你! –

相關問題