连接数据库问题 jdk1.4.2 + tomcat4.1+sql server jdbc drive 求救!

xqj526 2004-03-19 01:10:46
连接是出现 sql server2000 驱动程序不匹配的情况如下:

javax.servlet.ServletException: No suitable driver
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:497)
at org.apache.jsp.connectsqltest_jsp._jspService(connectsqltest_jsp.java:72)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:202)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2397)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
at java.lang.Thread.run(Thread.java:534)



--------------------------------------------------------------------------------

...全文
137 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanciex 2004-07-15
  • 打赏
  • 举报
回复
将上面三个jar copy到WEB_INF/lib目录下,一定行的。
jia162 2004-07-15
  • 打赏
  • 举报
回复
我这个就是纯粹复制过来的例子:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=students";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from stBasicInfo";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
你们看看,有什么错误吗?或帮我运行一下,看行不行?
上面的用户名是哪里的用户名,是SQL Server自带的吗?我重新建了一个也还不行,总是上面的那个错误。
tiannet 2004-06-09
  • 打赏
  • 举报
回复
为何不用jtds?
微软的不支持二次查询。。。
12345_ 2004-06-09
  • 打赏
  • 举报
回复
多谢楼上的!
msbase.jar,mssqlserver.jar,msutil.jar放到jdk\lib下过让可以了!
cricketlj 2004-03-30
  • 打赏
  • 举报
回复
http://www.microsoft.com/downloads/details.aspx?FamilyID=9f1874b6-f8e1-4bd6-947c-0fc5bf05bf71&DisplayLang=en#filelist

去看看!当个SQL Server 2000 Driver for JDBC Service Pack 2
cricketlj 2004-03-30
  • 打赏
  • 举报
回复
换个jdk1.3试试!
sqlserver 的JDBC不支持jdk1.4
wangnanwn 2004-03-19
  • 打赏
  • 举报
回复
应该是没有把驱动文件msbase.jar,mssqlserver.jar,msutil.jar放在lib下或者是驱动语句有问题
liutang2 2004-03-19
  • 打赏
  • 举报
回复
你在程序里是这样写的吗?
String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";//这个可以连网络库
//String driver="sun.jdbc.odbc.JdbcOdbcDriver";//这个只能连本地的库
String connstr ="jdbc:microsoft:sqlserver://10.91.85.128:1433;SelectMethod=cursor";
顽皮小熊 2004-03-19
  • 打赏
  • 举报
回复
按我说的去做:安装JDBC驱动,把3个包:mssqlserver.jar,msutil.jar,msbase.jar的路径写在classes里,连接代码:protected String sDBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
protected String sConnStr="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=happy";
protected String userID="sa";
protected String passwd="";
应该就好使了。拷完3个包以后你重启动一下TOMCAT
schuanghao 2004-03-19
  • 打赏
  • 举报
回复
不是楼上说的,是COPY 到TOMAT4\COMMON\LIB\ 下面
duan123 2004-03-19
  • 打赏
  • 举报
回复
你的驱动没有放正确位置,把msbase.jar,mssqlserver.jar,msutil.jar三个文件Copy到tomcat\common\lib文件夹下。然后重启服务
CoolAbu 2004-03-19
  • 打赏
  • 举报
回复
你的驱动没有放正确位置,把msbase.jar,mssqlserver.jar,msutil.jar三个文件Copy到JDK的lib文件夹下。然后重启服务

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧