2011-11-02 89 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驱动程序)的开发人员之一。