各位高手请进。。我很着急,国庆了,100分相送

黑兵 2004-10-02 12:01:49
以下是我在JAVABEAN中设置的查询数据用的代码。
public static List executeQuery(String sql) throws Exception
{
List list = new ArrayList();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try
{
conn = openConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
while ( rs.next() )
{
Map map = new HashMap();
for ( int i = 0; i < rsmd.getColumnCount(); i++ )
{
map.put(rsmd.getColumnName(i), rs.getString(i));
}
list.add(map);
}
}
catch ( Exception e )
{
e.printStackTrace();
}
finally
{
if ( rs != null ) rs.close();
closeConnection(conn);
}
return list;
}
------------------------------
现在我在JSP文件中引用了这个JAVABEAN
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*"%>
<%@page import="java.text.SimpleDateFormat"%>
<jsp:useBean id="conn" class="mybean.conn" scope="application"/>
<html>
<head>
<title>用户登录</title>
</head>
<body background="images/bg.gif">
<%
String sql = "select * from yonghu where gonghao='g01'";
List list = conn.executeQuery(sql);

for(int i=0;i<list.size();i++){
String str = (String)list.get(i);
System.out.println(str);
}
%>
</body>
</html>
----------------------
现在读不出任何数据。问题如下
1。在JSP文件中如何判断我查询的记录不存在?
2。在JSP文件中如何判断我查询出符合条件的记录只有一条?怎么样在JSP文件中把这条记录的某个字段的值或者全部字段的值显示出来?
3。在JSP文件中如何判断符合条件的记录不止一条?怎么样在JSP文件中把全部记录全部字段的值显示出来?
----------------很急的,谢谢大家了。。。
请举出具体例子。万分感谢
...全文
103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
黑兵 2004-10-02
  • 打赏
  • 举报
回复
哥们儿,你还在?哈哈。上QQ,谢谢你啦。。。今天全靠你啦
禽兽v5 2004-10-02
  • 打赏
  • 举报
回复
我用的是windows xp,本来装的oracle,太占资源,删了。想安装sql server 2000未果,正在调试sybase。成功启动后我也来试jdbc-odbc。
禽兽v5 2004-10-02
  • 打赏
  • 举报
回复
microsoft sql server的jdbc驱动下载:

http://download.microsoft.com/download/4/4/8/448af92b-e571-4bb2-810f-46be921a718c/setup.exe

安装后把C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib目录下三个jar文件放到tomcat\common\lib目录

连接字符串改为:
// 使用微软的jdbc驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//数据库名, 用户名, 密码要改成你的数据库相应摄设置。
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名;SelectMethod=cursor", "用户名", "密码");
禽兽v5 2004-10-02
  • 打赏
  • 举报
回复
实在对不起,另一位网友也出现不了纪录,估计可能是jdbc-odbc桥不能使用ResultSetMetaData的问题,我想要么不用封装,或者改成微软的jdbc驱动试试。

出错部分在这里
while ( rs.next() )
{
Map map = new HashMap();

// 能运行到这里,for循环进不去
for ( int i = 0; i < rsmd.getColumnCount(); i++ )
{
map.put(rsmd.getColumnName(i), rs.getString(i));
}

list.add(map);
}
禽兽v5 2004-10-02
  • 打赏
  • 举报
回复
问题原因是ResultSetMetaData需要从1开始取值:

for ( int i = 1; i <= rsmd.getColumnCount(); i++ )
{
map.put(rsmd.getColumnName(i), rs.getString(i));
}

81,092

社区成员

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

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