连接sql server数据库的问题

waterboat 2009-09-25 10:08:42
写了一个测试页,读取访问者的IP,然后到指数的sql server数据库服务器上查询此IP是否有权限访问。
但是显示的结果是"没有查找到该用户的ip.",应该是没有连上数据库。但是不知道问题在哪儿??

注:1、数据库相关的信息(地址,帐号、库名等)都是正常的。
2、访问者的IP在数据库里肯定存在。
3、在服务器上建立了系统DSN,测试数据源是成功的。


test.jsp代码如下:

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%!
String DBDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver" ;
String DBurl="jdbc:microsoft:sqlserver://192.168.3.2:1433;DatabaseName=DLBR" ;
String DBUser = "cas" ;
String DBPassWord = "123321";
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
String strEnable=null;
%>
<%
boolean flag = false ;
String UserIp=request.getRemoteAddr();
%>
<%
String sql = "SELECT ENABLE FROM USER WHERE IPADDR=?";
try
{
Class.forName(DBDriver) ;
conn = DriverManager.getConnection(DBurl,DBUser,DBPassWord) ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,UserIp) ;
rs = pstmt.executeQuery() ;
if(rs.next())
{
strEnable=rs.getString(1);
flag = true ;
}
if(rs!=null)try{rs.close();}catch(Exception e){System.out.println("关闭结果集存在异常");} ;
if(pstmt!=null)try{pstmt.close();}catch(Exception e){System.out.println("关闭PreparedStatement存在异常");} ;
if(conn!=null)try{conn.close();}catch(Exception e){System.out.println("关闭连接存在异常");} ;
}
catch(Exception e)
{System.out.println("建立连接存在异常");}
%>
<%
if(flag)
{
%>
该用户的情况:<%=strEnable%>
<%
}
else
{
%>
没有查到该用户的ip.
获取的IP地址为:<%=UserIp%>
<%
}
%>
</center>
</body>
</html>
...全文
105 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
waterboat 2009-09-27
  • 打赏
  • 举报
回复
是指1433么?
netstat -an 没问题啊
一岁耍流氓 2009-09-27
  • 打赏
  • 举报
回复
会不会是TCP协议的端口没有设置好啊
waterboat 2009-09-27
  • 打赏
  • 举报
回复
是不是那台sql server服务器应该装什么或是配置什么?
数据库的版本是sql server 2000 sp3
waterboat 2009-09-27
  • 打赏
  • 举报
回复
首先,我的IP在数据库里是存在的,我去查询分析器里查,也是是正常的。
再有,我让页面上显示出获取到的IP,也是正确的。

我试着把数据库的地址和帐号都故意改成错的,页面显示的还是“没有查到该用户的ip. ”

所以我想,应该还是数据库没有连接上。

不知道是怎么回事 :(
bdceo 2009-09-26
  • 打赏
  • 举报
回复
1,写了一个测试页,读取访问者的IP,然后到指数的sql server数据库服务器上查询此IP是否有权限访问。
但是显示的结果是"没有查找到该用户的ip.",应该是没有连上数据库。但是不知道问题在哪儿??
--------------------------------------------------
2,把获取到的ip打印出来,是正确的。sql语句放到查询分析器里,也是正确的。可是访问这个页面以后,就是显示找不到。
*****************************************************
以上都是楼主说的。这还真有点儿邪门儿,并且到现在也没看到你贴出的异常信息
这样吧,jsp也不好调试,你最好把这个请求写到一个Servlet里,也好调试,看看到底是哪儿出的异常。
哎,刚才还有点儿想法儿呢,一下子又忘了,你还是先调试看看吧...相信到了类里,一切就问题就清晰了。
pyyyf_java 2009-09-26
  • 打赏
  • 举报
回复
观望!
threeYUAN 2009-09-26
  • 打赏
  • 举报
回复
这种情况应该是获得的ip和数据库里的记录不匹配
数据库里的记录如果你是手动添加,会不会有空格。我以前遇到过类似的问题。
waterboat 2009-09-25
  • 打赏
  • 举报
回复
把获取到的ip打印出来,是正确的。
sql语句放到查询分析器里,也是正确的。
可是访问这个页面以后,就是显示找不到。
真邪门!


你的数据驱动有没有放进相应的文件(lib)中啊
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`````` ??? 具体应该怎么做?


也许是这里的问题,问一下。是这样的,有一个JSP的网站,我是把这个页放到了这个网站的文件夹里的。这样是不是会有影响? 这个网站是用IIS+RESIN发布的,这个网站本身是用的本地的ORACLE数据库。
lianjiali 2009-09-25
  • 打赏
  • 举报
回复
你的数据驱动有没有放进相应的文件(lib)中啊
zhanghai921 2009-09-25
  • 打赏
  • 举报
回复
那可能就是你的参数的问题了,你把参数打印出来看看吧
zhanghai921 2009-09-25
  • 打赏
  • 举报
回复
数据库连接是正确的,不然会报异常。应该是你的查询结果为空,没有找到相应的数据。打印下传入的参数userid和你的查询语句。把打印出来的sql语句和参数userid在数据库中执行查询看能不能查出数据来。
waterboat 2009-09-25
  • 打赏
  • 举报
回复
回1楼:显示的 “没有查到该用户的ip. ” 但此IP在数据库里是有的。

回2楼:但是这个IP在数据库里是有的,我把sql语句放在在查询分析器里是能查到的。

warrior30 2009-09-25
  • 打赏
  • 举报
回复
如果是没有连上数据库的话应该报异常信息才对。

flag 为false的话,就是rs.next()返回的是false。
既然数据库有数据那么你的查询语句 或者传进去的参数UserIp对吗。
debug一下看一下你的生成sql语句,并把它放到数据库里运行一下看看就知道了。
Gqinqin 2009-09-25
  • 打赏
  • 举报
回复
只看代码不太好看出什么问题,有没有错误信息!!

81,092

社区成员

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

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