Java 连接到新类中定义的数据源
是否可以连接到另一个类中定义的数据源,而不需要任何框架或服务器等,只用于本地应用程序,只用于实践 我有一个名为FireBirdDataSource的类: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
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的东西。