连接数据库问题 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)



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

...全文
108 12 点赞 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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文件夹下。然后重启服务
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-03-19 01:10
社区公告
暂无公告