java.sql.SQLException:未找到适合jdbc:sqlserver的驱动程序
我正在开发一个web应用程序,在这里我正在创建MSSQLServer2008 数据库动态更新 但它给了我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
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。