请问高手指点迷经~~~~~~
1.jsp中我作了一个连接数据库的类,DBOperate里面有一个静态方法,封装了返回结果集的sql,经测试无误:
DBOperate
{
static Connection conn;
public static ResultSet dbQuery(String sql)
{
ResultSet rs;
....
return rs;
}
}
我作了另外一个类,通过这个类读数据库,经测试也没问题
Persion
{
public String id="";
public String name="";
public Persion()
{
}
public fillByID(String id)
{
this.id=id;
sql="select * from persion where id='"+id+"'";
ResultSet rs=DBOperate.dbQuery(sql);
if ( rs!=null && rs.next)
{
name=rs.getString("name");
}
}
public static void main(String[] args)
{
Persion persion=new Persion();
persion.fillByID("1");
System.out.println(persion.name);
}
}
3.但在jsp的usebean中用就有问题了.
<jsp:useBean id="persion" scope="page" class="Persion"/>
<%=persion.id%>
<%=persion.name%>
其中persion.id能取到数据,persion.name就取不到数据,但如果在一个main里面测试这样的代码,就能读到数据,经过反复查错,发现ResultSet=null,这是什么原因呢,是不是不能用静态方法呢,请高手指点
问题点数:0、回复次数:12Top
1 楼dpli365(人生的一半是java)回复于 2005-02-03 09:42:36 得分 0
补充一下,bean里面都写了get方法,只是我没写出来Top
2 楼jfy3d(剑事 http://www.migti.com)回复于 2005-02-03 09:43:04 得分 0
ResultSet rs=DBOperate.dbQuery(sql);
if (rs.next())
{
name=rs.getString("name");
}
Top
3 楼dpli365(人生的一半是java)回复于 2005-02-03 10:05:21 得分 0
着块没问题,因为只有一条数据,而且我在main里面测试过了,都能读出来,就是用在jsp的bean中不行啊Top
4 楼jfy3d(剑事 http://www.migti.com)回复于 2005-02-03 10:13:40 得分 0
都贴出来吧Top
5 楼dpli365(人生的一半是java)回复于 2005-02-03 10:29:06 得分 0
这是member.jsp页面
<%@page contentType="text/html; charset=gb2312" language="java"%>
<html>
<head>
<title>溢洋论坛</title>
</head>
<body text="#0000ff" >
<table cellspacing="0" cellpadding="0" border="0" width="99%" align="center">
<tr>
<p align="center">查看用户资料</p>
</tr>
<jsp:useBean id="memberClass" scope="page" class="entity.sys.Member"/>
<%!String loginName;%>
<%
memberClass.fillByLoginName("dpli");
%>
<tr bgcolor="#F7FBFF">
<td width="42%">名称</td>
<td bgcolor="#F7FBFF" width="58%"><%=memberClass.getLoginName()%> </td>
</tr>
<tr bgcolor="#F7FBFF">
<td width="42%">用户昵称</td>
<td bgcolor="#F7FBFF" width="58%"><%=memberClass.getNikeName()%> </td>
</tr>
<tr bgcolor="#F7FBFF">
<td width="42%">用户姓名</td>
<td bgcolor="#F7FBFF" width="58%"><%=memberClass.getRealName()%> </td>
</tr>
<tr bgcolor="#F7FBFF">
<td width="42%">姓别</td>
<td width="58%"><%=memberClass.getSex()%> </td>
</tr>
<tr bgcolor="#F7FBFF">
<td width="42%">居住地址</td>
<td width="58%"><%=memberClass.getAddress()%> </td>
</tr>
</table>
</body>
</html>Top
6 楼dpli365(人生的一半是java)回复于 2005-02-03 10:30:12 得分 0
这是Member.java
//网站会员
public class Member extends Person
{
//积分
private int integral;
//用户级别
private int level;
//购物次数
private int consumeTimes;
//账户余额
private double balance;
//消费总金额
private double ConsumeAmount;
public Member()
{
init();
}
public boolean fillByLoginName(String loginName)
{
if (loginName == null || loginName.equals(""))
{
return false;
}
boolean rlt = false;
String sql = "select loginName,loginPass,userType,nickName,"
+ "realName,Sex,Age,Phone,Mobile,Email,Address,JoinDate,"
+ "integral,level,consumeTimes,balance,consumeAmount "
+ "from e_sys_member where loginName='"
+ loginName + "'";
ResultSet rs = DatabaseOperate.dbExecuteQuery(sql);
this.loginName = loginName;
try
{
if (rs != null && rs.next())
{
this.loginPass = rs.getString("loginPass");
this.nikeName = rs.getString("nickName");
this.realName = rs.getString("realName");
this.sex = rs.getString("sex");
this.age = rs.getInt("age");
this.phone = rs.getString("phone");
this.mobile = rs.getString("mobile");
this.email = rs.getString("email");
this.address = rs.getString("address");
this.joinDate = rs.getDate("joinDate");
this.integral = rs.getInt("integral");
this.level = rs.getInt("level");
this.consumeTimes = rs.getInt("consumeTimes");
this.balance = rs.getDouble("balance");
this.ConsumeAmount = rs.getInt("consumeAmount");
rlt = true;
}
}
catch (SQLException e)
{
e.printStackTrace();
rlt = false;
}
return rlt;
}
public void init()
{
super.init();
integral = 0;
level = GlobalData.Member.Level.LEVEL_0;
consumeTimes = 0;
balance = 0;
ConsumeAmount = 0;
}
public double getBalance()
{
return balance;
}
public double getConsumeAmount()
{
return ConsumeAmount;
}
public int getConsumeTimes()
{
return consumeTimes;
}
public int getIntegral()
{
return integral;
}
public int getLevel()
{
return level;
}
}
Top
7 楼dpli365(人生的一半是java)回复于 2005-02-03 10:30:58 得分 0
这是Person.java
package entity;
import java.util.Date;
import util.GlobalData;
//joinDate字段可能为空
public class Person extends Entity
{
//用户名为索引
protected String loginName;
protected String loginPass;
protected String nikeName;
protected String realName;
protected String sex;
protected int age;
protected String phone;
protected String mobile;
protected String email;
protected String address;
protected Date joinDate; // new Date(GlobalData.Global.INIT_DATA_STR);
public Person()
{
init();
}
protected void init()
{
loginName = "";
loginPass = "";
nikeName = "";
realName = "";
sex = "";
age = GlobalData.Global.INIT_AGE;
phone = "";
mobile = "";
email = "";
address = "";
joinDate = null; // new Date(GlobalData.Global.INIT_DATA_STR);
}
public static void main(String[] args)
{
}
public String getAddress()
{
return address;
}
public int getAge()
{
return age;
}
public String getEmail()
{
return email;
}
public Date getJoinDate()
{
return joinDate;
}
public String getLoginName()
{
return loginName;
}
public String getLoginPass()
{
return loginPass;
}
public String getMobile()
{
return mobile;
}
public String getNikeName()
{
return nikeName;
}
public String getPhone()
{
return phone;
}
public String getRealName()
{
return realName;
}
public String getSex()
{
return sex;
}
}
Top
8 楼jfy3d(剑事 http://www.migti.com)回复于 2005-02-03 10:43:55 得分 0
memberClass.fillByLoginName("dpli");是否返回trueTop
9 楼dpli365(人生的一半是java)回复于 2005-02-03 11:04:55 得分 0
我测过了返回false,原因是ResultSet=null,但是如果在main里面测试则不会为nullTop
10 楼dpli365(人生的一半是java)回复于 2005-02-03 11:51:28 得分 0
顶~~~Top
11 楼singedcat(以夢為馬)回复于 2005-02-04 10:29:34 得分 0
啥也别说了,缘分啦~Top
12 楼dpli365(人生的一半是java)回复于 2005-02-04 15:27:58 得分 0
请问大虾为什么,在main里面ResultSet不为空,在jsp中却为空,为什么呢Top




