JAVA高手请进!

sinapaper 2003-08-25 09:31:04
package db;
import java.sql.*;

public class usedb
{
public Connection con;
public Statement stm;
public ResultSet result;



public usedb()
{}


public void ResultDB(String sql)
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:b2c","","");
stm=con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
result=stm.executeQuery(sql);
}
catch(Exception e){System.out.print(e);}
}
}

上边是我连接数据库的JAVABEAN,我想在别的JAVABEAN中调用这个JAVABEAN的方法ResultDB(),这要怎么做,我试验db.usedb.ResultDB()不行,提示我Can't make a static reference to nonstatic variable result in class db.usedb.这个问题应该怎么解决?
...全文
77 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
seaman0916 2003-08-25
  • 打赏
  • 举报
回复
wangwd(coffee I love) 说得很好!应该能解决你的问题!

还要提醒你的是:public void ResultDB(String sql)无返回值的,你必然要在别的Javabean调用result 这个数据对不对 ?即先调用ResultDB(String sql),再调用result,
建议使用:
class a
{
String s;
public void test(String s)
{
this.s=s;
}
}
public class b
{
public static void main(String[] args)
{
String x;
a my =new a();
my.test("haha");
x=my.s;
System.out.println(x);
}
}

我觉得我写的这个例子很适合你 !
mengz 2003-08-25
  • 打赏
  • 举报
回复
不能在静态方法里引用非静态对象result.
beyondhuangjie 2003-08-25
  • 打赏
  • 举报
回复
儿童科!
leojeff 2003-08-25
  • 打赏
  • 举报
回复
有2中方法,

1、建立一个public的ResultDB方法
在你要调用的其他javabean中建立此类的对象,然后用这个对象调用这个方法

2、建立一个public static的ResultDB方法
在你要调用的其他javabean中直接db.usedb.ResultDB()就可以了!
wangwd 2003-08-25
  • 打赏
  • 举报
回复
你的问题的关键是涉及到静态与非静态的调用问题,在静态方法中不能直接调用一个非静态的方法。
例如:
public class Test{
public static void main(String[] args){
  String s =getName();//这种调用是不可以的
}

public String getName(){
return "abcd";
}
}。但是你可以通过对象访问非静态方法。
例如
public class Test{
public static void main(String[] args){
  Test test = new Test();
String s = test.getName();//这种调用是可以的
}

public String getName(){
return "abcd";
}
}。
也可以调用静态的方法例如
public class Test{
public static void main(String[] args){
  String s = getName();//这种调用是可以的
}

public static String getName(){
return "abcd";
}
}。
toger8191 2003-08-25
  • 打赏
  • 举报
回复
你是不是在另外一个的static函数调用?建一个这个class的对像就可以了
zcjl 2003-08-25
  • 打赏
  • 举报
回复
public void ResultDB(String sql)
改成public static void ResultDB(String sql)
sinapaper 2003-08-25
  • 打赏
  • 举报
回复
我不是在JSP中USEBEAN,我是在另外一个JAVABEAN中调用!
gboy2003 2003-08-25
  • 打赏
  • 举报
回复
<jsp:usebean ……/>

81,090

社区成员

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

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