日期:2014-05-18  浏览次数:20811 次

JSP连接数据库的奇怪问题
我用JAVA写了一个很小的应用程序,测试数据库的连接,用的是JDBC-ODBC桥,数据源是students,一个表info,3个字段,数据库是ACCESS   代码如下
import   java.sql.*;
public   class   conn{
                      public   static   void   main(String[]   args){
                              try{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");
}catch(Exception   e){out.print( "类找不到 ");}
try{
Connection   conn   =   DriverManager.getConnection( "jdbc:odbc:students ");
Statement   stmt   =   conn.createStatement();
ResultSet   rs   =   stmt.executeQuery( "select   *   from   info ");
while(rs.next()){
out.print( "编号: "+rs.getString(1));
out.print( "性别: "+rs.getString(2));
out.print( "分数: "+rs.getFloat(3));
out.println( " ");
}
rs.close();
stmt.close();
conn.close();
}catch(Exception   e){out.print( "SQL   异常 ");}
                      }
}


这个程序在运行正常,不抛出异常
可我把其中的那段复制到JSP里,就抛出异常,就是抛出我定义的“SQL异常”,我的JSP的配置都没有问题,这是为什么呢,谁能帮我啊,


附:JSP代码:
<%@   page   contentType= "text/html;   charset=GB2312 "   language= "java "   errorPage= " "   %>
<%@   page     import= "java.sql.* "%>
<!DOCTYPE   html   PUBLIC   "-//W3C//DTD   XHTML   1.0   Transitional//EN "   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html   xmlns= "http://www.w3.org/1999/xhtml ">
<head>
<meta   http-equiv= "Content-Type "   content= "text/html;   charset=gb2312 "   />
<title> 无标题文档 </title>
</head>

<body>
<%
try{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");
}catch(Exception   e){out.print( "类找不到 ");}
try{
Connection   conn   =   DriverManager.getConnection( "jdbc:odbc:students ");
Statement   stmt   =   conn.createStatement();
ResultSet   rs   =   stmt.executeQuery( "select   *   from   info ");
while(rs.next()){
out.print( "编号: "+rs.getString(1));
out.print( "性别: "+rs.getString(2));
out.print( "分数: "+rs.getFloat(3));
out.println( " ");
}
rs.close();
stmt.close();
conn.close();
}catch(Exception   e){out.print( "SQL   异常 ");}

%>
</body>
</html>

------解决方案--------------------
SQL 异常[Microsoft][ODBC SQL Server Driver][SQL Server]用户 '(null) ' 登录失败。原因: 未与信任 SQL Server 连接相关联。

你连数据库的时候,用户名和密码在哪里呀???没写用户名和密码,没法连接,当然抛异常了。
你输出异常的时候out.print(e.getMessage());这样多好啊!!什么错误一下就看出来了!!
------解决方案--------------------
连接的时候需要加入密码和用户信息.DriverManager.getConnection(connName, dbUser, dbPwd);