和数据库连接时No suitable driver 。。

zhanyang2625 2003-07-20 03:52:58
我用的j2sdk1.4.1_03,Tomcat 4.1,Microsoft SQL Server 2000 Driver for JDBC,

这是原码

<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://WORKGROU-AE53P0:1433;DatabaseName=zy";
Connection con=DriverManager.getConnection(url);
con.setCatalog("lyb");
Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=stmt.executeQuery("select * from lyb");
String name=rs.getString("name");
stmt.close();
con.close();
%>



运行后就是
description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
.............................(下面N行省略)

如果把Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
换成Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
的话,动行时就变成:
description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: No suitable driver (这句和上面不同)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
...........................(下面都是一样。)


classpath也设了msbase.jar,mssqlserver.jar,msutil.jar的安装路径

我也把msbase.jar,mssqlserver.jar,msutil.jar拷到tomcat4.1\shared\lib下了

sql server2000服务也运行着的。

可就是连不上驱动呐。。。
...全文
115 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanxibang 2004-02-13
  • 打赏
  • 举报
回复
一)各种数据库jdbc驱动程序
oracle驱动程序:http://otn.oracle.com/software/tech/java/sqlj_jdbc/content.html或者C:\oracle\ora81\jdbc\lib\classes12.zip(注意版本)
mysql驱动程序:http://www.mysql.com
sqlserver驱动程序:http://www.microsoft.com/china/sql/default.asp 下载setup.exe文件,再安装
二)驱动的安装
1)环境:WIN2K+j2sdk-1_4_1+tomcat连oracle817 将class12.zip文件改名为class12.jar,然后放到你的jsp目录的WEB-INF/lib下就可
连接程序代码如下:
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*"%>
<%String sDBDrvier="oracle.jdbc.driver.OracleDriver";
String user="dq";
String pwd="dqdq";
String sConnStr="jdbc:oracle:thin:@192.168.0.49:1521:test"; //其中test是数据库的sid
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
String sqlStr="select * from t_user";
try{
Class.forName(sDBDrvier);
}
catch(ClassNotFoundException e)
{
System.out.println("数据库驱动类没找到");
}
try{
conn=DriverManager.getConnection(sConnStr,user,pwd);
stmt=conn.createStatement();
rs=stmt.executeQuery(sqlStr);
while(rs.next())
{
out.print(rs.getString("username"));
}
}
catch(SQLException ex)
{
System.out.print(ex.getMessage());
}
%>
报错原因:
The Network Adapter could not establish the connection 这可能是oracle的服务OracleServiceXB和OracleOraHome81TNSListener没有启动
Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=135294976)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))) sid错误
No suitable driver 没有安装驱动程序
驱动程序版本不一致
2)环境:WIN2K+j2sdk-1_4_1+tomcat连sql server2000 将msbase.jar,mssqlserver.jar,msutil.jar放到你的jsp目录的WEB-INF/lib下就可
连接程序代码如下:
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*"%>
<%String sDBDrvier="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String user="sa";
String pwd="781213";
String sConnStr="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
String sqlStr="select * from t_user";
try{
Class.forName(sDBDrvier).newInstance();
}
catch(ClassNotFoundException e)
{
System.out.println("数据库驱动类没找到");
}
try{
conn=DriverManager.getConnection(sConnStr,user,pwd);
stmt=conn.createStatement();
rs=stmt.executeQuery(sqlStr);
while(rs.next())
{
out.print(rs.getString("u_name"));
}
}
catch(SQLException ex)
{
System.out.print(ex.getMessage());
}
%>




连接access使用jdbc-odbc桥不配置odbc
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ce)
{
System.out.println("SQLException:"+ce.getMessage());
}
try
{
String DbUrl = "jdbc:odbc:DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)};DSN='';DBQ=E:\\ms.net\\sendmessage\\vbRs232\\mobilemessage.mdb";
String user = "";
String password = "";
Con=DriverManager.getConnection(DbUrl,user,password);
stmt = Con.createStatement();
}
catch(SQLException e)
{
System.out.println("SQLException"+e.getMessage());
}



























zhanyang2625 2003-07-20
  • 打赏
  • 举报
回复
sql server2000服务也运行着的。
zhanyang2625 2003-07-20
  • 打赏
  • 举报
回复
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://WORKGROU-AE53P0:1433","administrator","");


现在是

org.apache.jasper.JasperException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'administrator' 登录失败。原因: 未与信任 SQL Server 连接相关联。

pleonheart 2003-07-20
  • 打赏
  • 举报
回复
数据库启动了吗?
zhanyang2625 2003-07-20
  • 打赏
  • 举报
回复
他自己好了居然。。。

真是&^@%(*&@%^#%*^@..
zhanyang2625 2003-07-20
  • 打赏
  • 举报
回复
他自己好了居然。。。。

真是#¥%·#¥……·¥#¥%·!!#·
skyorange 2003-07-20
  • 打赏
  • 举报
回复
你的odbc配好了吗?

81,094

社区成员

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

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