Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 连接到新类中定义的数据源_Java_Jdbc_Datasource_Firebird_Jaybird - Fatal编程技术网

Java 连接到新类中定义的数据源

Java 连接到新类中定义的数据源,java,jdbc,datasource,firebird,jaybird,Java,Jdbc,Datasource,Firebird,Jaybird,是否可以连接到另一个类中定义的数据源,而不需要任何框架或服务器等,只用于本地应用程序,只用于实践 我有一个名为FireBirdDataSource的类: import org.firebirdsql.pool.FBWrappingDataSource; import javax.naming.InitialContext; import javax.naming.NamingException; public class FireBirdDataSource { public FireBird

是否可以连接到另一个类中定义的数据源,而不需要任何框架或服务器等,只用于本地应用程序,只用于实践

我有一个名为FireBirdDataSource的类:

import org.firebirdsql.pool.FBWrappingDataSource;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class FireBirdDataSource {
public FireBirdDataSource() {
    InitialContext context = null;
    FBWrappingDataSource dataSourceFB = new FBWrappingDataSource();
    dataSourceFB.setDatabase("jdbc:firebirdsql:localhost/3050:C:\\DB.fdb");
    dataSourceFB.setUserName("SYSDBA");
    dataSourceFB.setPassword("masterkey");
    try {
        context = new InitialContext();
        context.bind("jdbc/FBDB", dataSourceFB);
    } catch (NamingException e) {
        e.printStackTrace();
    }

}
}
正在尝试通过以下方式连接到它:

   InitialContext context = new InitialContext();
        DataSource dataSource = (DataSource)context.lookup("jdbc/FBDB");
        Connection con = dataSource.getConnection();

连接con=dataSource.getConnection()-找不到getConnection()方法。我似乎做了一些非常错误的事情,但我不太清楚是什么。

你确定你是在向
java.sql.DataSource
而不是-例如-
javax.activation.DataSource
?还有,你是否调用过
FireBirdDataSource
的构造函数,否则什么都不会绑定。请注意,尽管以这种方式注册数据源有点非典型。是的,调用FireBirdDataSource的构造函数。是的,正在转换错误的数据源。现在我得到了“javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或者作为applet参数,或者在应用程序资源文件中指定类名:java.naming.factory.initial”我已经查看了数据源,似乎它通常是在一些属性文件中定义的,对吗?这是什么类型的应用程序?如果它在应用服务器或类似tomcat的东西中运行,那么您应该通过配置而不是代码来创建数据源。如果它是一个独立的应用程序,那么考虑只使用一个类来保存和初始化一个静态数据源,而不是通过获得JNDI运行所需的环。谢谢,马克:现在我放弃了JNDI的东西。