我使用 resin3.0+iis+sql server2000系统,其他都正常了,只是在使用jdbc操作数据库的时候,出现驱动问题,请教各位高手:
代码如下:
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:odbc:booksms";
String user="sa";
String password="sa";
Connection conn=DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from message";
ResultSet rs=stmt.executeQuery(sql);
%>错误提示如下:
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(DriverManager.java:532)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at _jsp._book._sql__jsp._jspService(book/sql.jsp:10)
at com.caucho.jsp.JavaPage.service(JavaPage.java:60)
at com.caucho.jsp.Page.pageservice(Page.java:570)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:159)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:419)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:388)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:490)
at com.caucho.util.ThreadPool.run(ThreadPool.java:423)
at java.lang.Thread.run(Thread.java:536)

解决方案 »

  1.   

    你用JDBC-ODBC的方法连接数据库,driver应该用sun.Jdbc.Odbc.JdbcOdbcDriver。你原来的是用JDBC桥直接连接sql server那么url应该是jdbc:microsoft:sqlserver://host:1433;DatabaseName=db_name,那当然会出这错误
      

  2.   

    sqlserver应该可以直接用jdbc,我还是觉得应该是驱动的问题。
      

  3.   

    你用JDBC-ODBC的方法连接数据库,driver应该用sun.Jdbc.Odbc.JdbcOdbcDriver。你原来的是用JDBC桥直接连接sql server那么url应该是jdbc:microsoft:sqlserver://host:1433;DatabaseName=db_name,那当然会出这错误
    这个方法我也用了,还是有错误的,郁闷啊,是不是什么地方没设置好
      

  4.   

    jdbc 和 jdbc:odbc 可以混用吗?
    从没试过
    同意 
       storm1979(暴风)  
       你用JDBC-ODBC的方法连接数据库,driver应该用sun.Jdbc.Odbc.JdbcOdbcDriver。你原来的是用JDBC桥直接连接sql server那么url应该是jdbc:microsoft:sqlserver://host:1433;DatabaseName=db_name,那当然会出这错误
      

  5.   

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    out.print("数据库驱动加载成功,恭喜你");
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=booksms";我是这样用了,可是错误依然啊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 _jsp._book._sql__jsp._jspService(book/sql.jsp:17)
    at com.caucho.jsp.JavaPage.service(JavaPage.java:60)
    at com.caucho.jsp.Page.pageservice(Page.java:570)
    at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:159)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
    at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:419)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:388)
    at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:490)
    at com.caucho.util.ThreadPool.run(ThreadPool.java:423)
    at java.lang.Thread.run(Thread.java:536)
      

  6.   

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    out.print("数据库驱动加载成功,恭喜你");
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=booksms";这种写法时数据库连接已经对了,现在的错误不是Connection的问题,开始odbc是驱动不对的问题
     storm1979(暴风) 说的对。推荐使用 net.sourceforge.jtds.jdbc.Driver 的SQLServer驱动,另外最好不要自己写jdbc代码,使用spring-jdbc或iBatis、hibernate都是不错的选择。