读书人

为什么会有java.sql.SQLException: No

发布时间: 2012-01-13 22:43:30 作者: rapoo

为什么会有java.sql.SQLException: No suitable driver的错误?在线等
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(DriverManager.java:545)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at app.bean.DataBaseConnection.getConnection(DataBaseConnection.java:16)
at app.action.RegisterBean. <init> (RegisterBean.java:14)
at app.action.RegisterAction.execute(RegisterAction.java:25)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)

我已经把3个sqlserver的驱动拷到/web-inf/lib下,在jre/lib/ext下也拷进去了,并且在java build path-library-add external jars也包含进这3个jar了。为什么还报错?开发工具是eclipse

DataBaseConnection.java
import java.sql.Connection;
import java.sql.DriverManager;

public class DataBaseConnection {
public static Connection getConnection(){
Connection con=null;
String CLASSFORNAME= "com.microsoft.jdbc.sqlserver.SQLServerDriver ";
String SERVANDDB= "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev ";
String USER= "bn ";
String PWD= "bn ";

try{
Class.forName(CLASSFORNAME);
con=DriverManager.getConnection(SERVANDDB,USER,PWD);
System.out.println( "connect success ");
}catch(Exception e){
System.out.println( "connecting failded ");
e.printStackTrace();
}
return con;
}

}

[解决办法]
补丁呢?
[解决办法]
我已经打了sp4的补丁了,可还是这样,看了不少关于这个问题的帖子,有些错误差不多,但修改后还是这样
[解决办法]
版本不对吧.
看你用的是2000还是2005了,下个合适的驱动. 2005好像一个驱动文件就行了.
------解决方案--------------------


驱动不匹配啊,是不是下错驱动了?

[解决办法]
应该是驱动不对吧
[解决办法]
你加载 SQLServer 得三个Jar包了吗?要是没加载肯定会报错的~~
[解决办法]
如果你用的tomcat6.0以上的话,请把它拷贝到 lib下试一下,如果不行,请等下一位高手
[解决办法]
启动问题。
[解决办法]
我改动后发现新的问题,报错如下
======================================================================
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]拒绝了对对象 'message '(数据库 'jspdev ',所有者 'dbo ')的 SELECT 权限。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source)
at com.jspdev.ch9.ViewMessageServlet.doGet(ViewMessageServlet.java:21)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at com.jspdev.ch9.AddMessageServlet.doGet(AddMessageServlet.java:49)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)


at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
[解决办法]
要勾选db_owner角色
解决方法:打开SQL Server企业管理器,在组中-> 全性性-> 登录,选中所设的用户,右键-> 属性-> 数据库访问,选择数据库名,勾选db_owner角色.
[解决办法]
纠正:全性性 改为 安全性
[解决办法]
我建立的用户bn已经把所有权限给完了,bn已经拥有所有的角色了...
结果还是权限不够...

[解决办法]
哪位高手帮帮我啊~~~~~~
[解决办法]
LZ兄弟看你数据库名称和使用的USER好象是青岛双硕程序员学校提供的代码。。。。。。。
[解决办法]
No suitable driver是驱动问题
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]拒绝了对对象 'message '(数据库 'jspdev ',所有者 'dbo ')的 SELECT 权限。是用户权限问题呀

[解决办法]
有两种情况:
1、是驱动包没拷贝到lib底下 ,就是mssqlserver.jar,msbase.jar,msutil.jar。不过根据你做
的程序不同,还会有一些其他的包要导入,但连接jdbc这三个包一定要导入的
2、补丁没打也是一种可能,正常需要打到sp3补丁,最好再下载一个jdbc驱动。
[解决办法]
我看的是JSP应用开发详解这本书,我打了 sp4的补丁,并且把.jar导在了工程的lib目录下.
主要是权限问题,哪位大大给个解决方案啊,偶一定给分的~~~`
[解决办法]
hhx420
正解啊~~~
你查看下你的用户bn是否有访问jspdev数据库的权限~~~
"数据库角色中允许 "这一项勾选上 "public "和 "db_owner "这2项
[解决办法]
LZ
hhx420已经给您讲了
解决方案已经给您了 明显是您没有解决好。
[解决办法]
打一个sp4

读书人网 >Java Web开发

热点推荐