我的问题是这样的:
昨天解决了我这个项目的“ 并非所有变量都已关联”问题。可以运行了。
但是我后来回家一试,又出现这个问题。今天来这一试,也是一样。我是调用query方法出问题了,说得到null。
调了好久,后来我发现我把下面init()方法的incontext.close();  去掉,就解决了那问题。可以正常运行了。
后来我又加上incontext.close(); 居然也能正常运行了。我重启eclipse,有incontext.close(); 还是能正常运行。
我就纳闷了,当时是我去掉incontext.close(); 这句才正常运行的啊,
我很菜,还望大虾指明!        public void init()
{
try
{
Context incontext=new InitialContext();
this.ds=(DataSource)incontext.lookup(dataSourceName);
incontext.close();   //不知道是不是这句的问题
} catch (NamingException e)
{
e.printStackTrace();
}
}

public Object query(String sql,String[] params,ResultSetHandler rsh)
{
QueryRunner qr=new QueryRunner(ds);
Object result=null;
try
{
result=qr.query(sql, params, rsh);
} catch (SQLException e)
{
e.printStackTrace();
}
return result;
}

解决方案 »

  1.   

    程序有时候就是那样怪怪的,可能就是你的eclipse问题(重启下就能正常运行);甚至有时候把你的程序剪切掉之后保存再贴进来就能运行了~~~以后遇到类似的问题 记得这些常规处理办法来调试就行了!  
    我个人的愚见~~
      

  2.   

    谢谢上面的朋友解答。
    我今天来又试了下,有那句,也行,看来可能真不是那句出现的问题。
    其他我什么都没改啊,昨天出现问题后启动了plsql。今天我也没启动这个啊,有点莫名其妙啦,汗
    看还有没有高人知道的。
      

  3.   

    5楼的你好,数据库还要另外启动吗,什么就没有完全启动啊6楼的你好,我的class怎么会没被编译呢,都抛出出错信息了啊,我是在eclipse里保存了的 啊。
      

  4.   

    Context incontext=new InitialContext();
    this.ds=(DataSource)incontext.lookup(dataSourceName);
    incontext.close();   //不知道是不是这句的问题使用Context类型对象创建并获取的数据源,
    DataSource在建立好之后就和Context对象毫无关系了
    就算是context关闭或删除,对DataSource一点没有影响
      

  5.   

    所以才会出现你加和不加incontext.close(); 
    都对程序毫无影响
      

  6.   

    肯定不是这句话的错误,
    应该是eclipse没有编译新的代码,当去掉那句发现有改变就编译了编译没问题之后,你加上那句本来就没有错的代码当然没问题了,再有这种情况使用"clean..."清理一下项目
      

  7.   

    呵呵,谢谢8楼的朋友分析。我还想知道9楼那位朋友说的使用"clean..."清理一下项目是不是指右键Source->clean up因为我没用过这个东西,这是不是清理一下的意思啊
      

  8.   

    eclipse 中的项目->清理的作用是将编译生成的class文件删除的 
    说实话我也没用过这些快捷键,不过就这个作用,将编译生成的class文件删除之后重新发布运行时,Eclipse会重新在后台编译
      

  9.   

    呵呵,结贴啦,谢谢yinyuan1987 和其他帮忙的朋友啊,