Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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.sql.SQLException:未找到适合jdbc:sqlserver的驱动程序_Java_Sql Server 2008_Jdbc_Sqlexception - Fatal编程技术网

java.sql.SQLException:未找到适合jdbc:sqlserver的驱动程序

java.sql.SQLException:未找到适合jdbc:sqlserver的驱动程序,java,sql-server-2008,jdbc,sqlexception,Java,Sql Server 2008,Jdbc,Sqlexception,我正在开发一个web应用程序,在这里我正在创建MSSQLServer2008 数据库动态更新 但它给了我 java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:1433;databaseName=master 我的代码是: String dbName = "db1"; try { String url = "jdbc:sqlserver://localhost:1433;databa

我正在开发一个web应用程序,在这里我正在创建MSSQLServer2008 数据库动态更新

但它给了我

java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:1433;databaseName=master
我的代码是:

String dbName = "db1";
try {
    String url = "jdbc:sqlserver://localhost:1433;databaseName=master";
    Connection connection = DriverManager.getConnection(
                 url,
                 "sa",
                 "roshan14121987");

    Statement statement = connection.createStatement();
    String sqlquery = "CREATE Database \"" + dbName + "\"; ";
    statement.executeUpdate(sqlquery);
    statement.close();

    connection.close();

} catch(Exception e) {
    e.printStackTrace(); 
}
我在lib中添加了sqljdbc4.jar。我在NetBeans(GlassFish和Tomcat服务器)和eclipseide(Tomcat服务器)上都试过


另一方面,我用简单的桌面应用程序尝试了这个方法,它在两个IDE上都工作得很好。在库中添加sqljdbc4.jar后。

错误发生在Tomcat服务器上的运行时,对吗?我认为您需要确保在服务器中部署sqljdbc4.jar。

错误发生在Tomcat服务器上的运行时,对吗?我认为您需要确保在服务器中部署sqljdbc4.jar。

在调用
DriverManager.getConnection()
之前,您必须加载SQLServer JDBC驱动程序。你可以做
Class.forName(“xxxx”)其中xxxx是适当的驱动程序类(带有包前缀的完全限定名)


编辑:这样做
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”)以加载驱动程序。有关详细信息,请参阅。

在调用
DriverManager.getConnection()
之前,必须加载SQLServer JDBC驱动程序。你可以做
Class.forName(“xxxx”)其中xxxx是适当的驱动程序类(带有包前缀的完全限定名)


编辑:这样做
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”)以加载驱动程序。请参阅更多信息。

是WEB-INF/lib下war文件中的
sqljdbc4.jar
。这是$CATALINA_HOME/lib的替代位置,建议您保持web应用程序的自包含性。此外,如果您需要更改服务器,只需将war放到您的webapps目录中即可


您可能还需要一个Class.forName([database Class]).newInstance,但需要一个驱动程序。祝您好运,如果您还有其他问题,请留下评论。

是WEB-INF/lib下war文件中的
sqljdbc4.jar
。这是$CATALINA_HOME/lib的替代位置,建议您保持web应用程序的自包含性。此外,如果您需要更改服务器,只需将war放到您的webapps目录中即可


您可能还需要一个Class.forName([database Class]).newInstance,但需要一个驱动程序。祝您好运,如果您还有其他问题,请留下评论。

尝试将.JAR添加到tomcat的
lib\
文件夹中。是的,我已经在lib中添加了…尝试:
Connection-Connection=DriverManager.getConnection(“jdbc:sqlserver://localhost:1433;databaseName=master;user=sa;password=roshan14121987”)尝试将.JAR添加到tomcat的
lib\
文件夹中。是的,我已经在lib中添加了…尝试:
Connection Connection=DriverManager.getConnection(“jdbc:sqlserver://localhost:1433;databaseName=master;user=sa;password=roshan14121987”)+1漂亮的接球,可能就是这个@Bimalesh是的,它与Class.forName(“xxxx”)一起工作,但当我在简单java类中使用相同的代码时,我混淆了为什么它没有Class.forName(“xxxx”)工作。@Anite您的代码必须在某个地方引用/加载驱动程序,不一定在代码中,但可能是其他地方的某个初始化例程。请深入挖掘。根据我的经验,独立Java应用程序不需要Class.forName调用,但当我在Tomcat web应用程序中使用相同的代码时,我需要添加它。@manikantanvsr,这是由于使用服务提供者机制的Java运行时的现代版本发生了变化。请检查这个答案,你可以在你的jar包中实现一个服务/META-INF@Bimalesh是的,它与Class.forName(“xxxx”)一起工作,但当我在简单java类中使用相同的代码时,我混淆了为什么它没有Class.forName(“xxxx”)工作。@Anite您的代码必须在某个地方引用/加载驱动程序,不一定在代码中,但可能是其他地方的某个初始化例程。请深入挖掘。根据我的经验,独立Java应用程序不需要Class.forName调用,但当我在Tomcat web应用程序中使用相同的代码时,我需要添加它。@manikantanvsr,这是由于使用服务提供者机制的Java运行时的现代版本发生了变化。请检查这个答案,您可以在jar包中为此实现一个services/META-INF。