Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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 如何创建initialcontext以连接到sql server_Java_Jndi - Fatal编程技术网

Java 如何创建initialcontext以连接到sql server

Java 如何创建initialcontext以连接到sql server,java,jndi,Java,Jndi,我很难将java代码连接到sql server数据库。我可以很好地从App server连接。但是现在我想尝试使用带有一些env属性的InitialContext与App server进行连接。因此,使用InitialContext 我的项目库中有mssqlserver.jar。我还需要别的罐子吗 我四处寻找一些代码示例,但不知道在Context中放什么。INITIAL\u Context\u FACTORY Hashtable env = new Hashtable(); env.put(Co

我很难将java代码连接到sql server数据库。我可以很好地从App server连接。但是现在我想尝试使用带有一些env属性的
InitialContext
与App server进行连接。因此,使用
InitialContext

我的项目库中有mssqlserver.jar。我还需要别的罐子吗

我四处寻找一些代码示例,但不知道在
Context中放什么。INITIAL\u Context\u FACTORY

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "what do i put here?");
env.put("java.naming.factory.initial",
"what do i put here?");
...
what other properties would I need?
在应用服务器上,我有以下属性

datasourceName = mydb
user = myuser
port = 1433
password = mypwd
databaseName = mydb
servername = localhost

你在这条路上走错了。InitialContext完全是关于应用程序服务器的。为了在不使用应用服务器的情况下直接连接到数据库,您必须创建自己到数据库的JDBC连接,或者使用不同的JDBC连接池实现。

您在这方面做得不对。InitialContext完全是关于应用程序服务器的。为了在不使用应用服务器的情况下直接连接到数据库,您必须创建自己的数据库JDBC连接,或者使用不同的JDBC连接池实现。

首先,为什么不使用
DriverManager#getConnection()
?在(简单的)客户机应用程序中实现和使用JNDI需要付出太多的努力,而得到的好处相对较少

一个普通的应用服务器自带自己的JNDI实现,所以您根本不需要担心自己创建/定义/配置一个JNDI实现


如果您真的想在客户机应用程序中使用JNDI,那么启动。祝你好运。

首先,为什么不使用
DriverManager#getConnection()
?在(简单的)客户机应用程序中实现和使用JNDI需要付出太多的努力,而得到的好处相对较少

一个普通的应用服务器自带自己的JNDI实现,所以您根本不需要担心自己创建/定义/配置一个JNDI实现


如果您真的想在客户机应用程序中使用JNDI,那么启动。祝您好运。

您可能会发现咨询会对您有所帮助,您会发现您可以使用DriverManager获得连接。您熟悉的JNDI方法是一种很好的通用抽象,用于访问AppServer环境中提供的各种服务。对于独立应用程序,通常只使用原始API。

您可能会发现,咨询会很有帮助,您会发现可以使用DriverManager来获取连接。您熟悉的JNDI方法是一种很好的通用抽象,用于访问AppServer环境中提供的各种服务。对于独立应用程序,通常只使用原始API。

您使用的是什么应用程序服务器?您正在使用连接池吗?Sun Application server。但是,我正在编写的代码不会在服务器上运行。它是容器外的独立java类您使用的是什么应用程序服务器?您正在使用连接池吗?Sun Application server。但是,我正在编写的代码不会在服务器上运行。它是容器外的一个独立java类,我知道这会出现。我应该在问题中提供:)。我正在编写一些代码,可以在应用服务器之外运行查询。所以我想使用initialcontext进行连接……如果根本不可能……那么我将坚持使用JDBC?@Drake,你必须坚持使用JDBC。当然,从理论上讲,您可以远程连接到应用程序服务器,但应用程序服务器通常不会远程服务于数据源(有充分的理由)。您也可以重新发明轮子并拥有自己的JNDI实现,但这只会掩盖JDBC,所以为什么要麻烦呢?如果我连接JDBC,会在Class.forName(“”)中放置什么。考虑到我使用的是mssqlserver。jar@Drake,对于mssql,对于Microsoft的驱动程序,它是com.Microsoft.sqlserver.jdbc.SQLServerDriver。您还需要担心jdbc URL,但这必须在您的应用程序服务器配置中,对于Sun,我认为它在server.xml中。我知道这会出现。我应该在问题中提供:)。我正在编写一些代码,可以在应用服务器之外运行查询。所以我想使用initialcontext进行连接……如果根本不可能……那么我将坚持使用JDBC?@Drake,你必须坚持使用JDBC。当然,从理论上讲,您可以远程连接到应用程序服务器,但应用程序服务器通常不会远程服务于数据源(有充分的理由)。您也可以重新发明轮子并拥有自己的JNDI实现,但这只会掩盖JDBC,所以为什么要麻烦呢?如果我连接JDBC,会在Class.forName(“”)中放置什么。考虑到我使用的是mssqlserver。jar@Drake,对于mssql,对于Microsoft的驱动程序,它是com.Microsoft.sqlserver.jdbc.SQLServerDriver。您还需要担心JDBCURL,但这必须在您的应用程序服务器配置中,因为Sun我认为它在server.xml中。