2011-11-02 120 views
0

現在我得到了java.sql.SQLException:找不到適合jdbc的驅動程序:firebirdsql:embedded:f/test.fdbJava和Firebird嵌入式如何創建數據庫?

我在我的項目中包含jaybird jar。請幫我出去
package util;

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 
import org.firebirdsql.gds.impl.GDSType; 
import org.firebirdsql.management.FBManager; 

public class FireBirdCreator { 

    public FireBirdCreator() { 
     FBManager manager = new FBManager(GDSType.getType("EMBEDDED")); 

     try { 
      manager.start(); 
      manager.createDatabase("f:/test.fdb", "sysdba", "masterkey"); 
      manager.stop(); 
     Connection bd = DriverManager.getConnection("jdbc:firebirdsql:embedded:f/test.fdb"); 
     Statement st = bd.createStatement(); 
     st.execute("create table if not exists 'TABLE1' ('name1' int, 'name2' text, 'name3' text);"); 
     st.execute("insert into 'TABLE1' ('name1', 'name2', 'name3') values (1, 'name1', 'name2'); "); 
     st.execute("insert into 'TABLE1' ('name1', 'name2', 'name3') values (2, 'name3', 'name4'); "); 
     st.execute("insert into 'TABLE1' ('name1', 'name2', 'name3') values (3, 'name5', 'name6');"); 
     ResultSet rs = st.executeQuery("select * from TABLE1"); 
     while (rs.next()) 
      { 
       System.out.print (rs.getString(1)+" "); 
       System.out.print (rs.getString(2)+" "); 
       System.out.println(rs.getString(3)); 
      } 
     } catch (Exception e) { 
      System.out.println(e); 
     } 
    } 

    public static void main(String args[]) { 
     FireBirdCreator fbc = new FireBirdCreator(); 
    } 
} 
+0

您的標題暗示您想要創建數據庫,而您的代碼只能連接到數據庫。數據庫是否存在? –

+0

感謝您的回答。不,它不。我如何創建它? – bunnyjesse112

回答

3

錯誤消息指示該文件不存在。它顯示'null'而不是實際文件名的事實可能是嵌入式版本和Jaybird版本之間的不匹配。

要創建你需要使用下面的代碼(並處理它以正確的方式拋出的異常)的數據庫:

FBManager manager = new FBManager(GDSType.getType("EMBEDDED")); 
manager.start(); 
manager.createDatabase("database.fdb", "", ""); 
manager.stop(); 

另外要注意,您使用的是創建表的DDL不有效的Firebird SQL。您需要使用RECREATE TABLE,並且Firebird沒有稱爲text的類型。

完全披露:我是Jaybird(Firebird JDBC驅動程序)的開發人員之一。

相關問題