现在我得到java.sql.SQLException:没有为jdbc找到合适的驱动程序:firebirdsql:embedded:f / test.fdb
我在项目中加入了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 :(得分: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驱动程序)的开发人员之一。