PrepareStatement总是报空指针

rhodian 2009-11-23 11:45:24
public String ReturnYesorNo()
{
Connection conn=null;

ResultSet rs=null;
PreparedStatement ps=null;
String ok=null;

DatabaseConn Conn =new DatabaseConn();


DatabaseConnForm databaseConnForm=new DatabaseConnForm();
List list=new ArrayList();
try
{
conn=Conn.getConnection();
ps=conn.prepareStatement("select * from OFFICE_WORKFLOWINSTANCE");
ps.toString();
rs=ps.executeQuery();
while(rs.next())
{
ok="OK!";
}
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
if(conn!=null)
{
System.out.println("1");
try
{
conn.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
}
if(ps!=null)
{
System.out.println("2");
try
{
ps.close();
}
catch (SQLException e)
{

e.printStackTrace();
}
}
if(rs!=null)
{
System.out.println("3");
try
{
rs.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
return ok;
}

为什么在ps=conn.prepareStatement("select * from OFFICE_WORKFLOWINSTANCE");的地方报空指针呢?

用main函数测试,没问题,可以查出数据。。。。

但是想在别的类的方法里面调用这个方法获得返回值的时候,ps=conn.prepareStatement("select * from OFFICE_WORKFLOWINSTANCE");一直报空指针异常。。。。


指点下吧。。大家。。。


太穷了,分都给不起了
...全文
1012 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin364653705 2009-11-24
  • 打赏
  • 举报
回复
这种情况,如果conn不为空,那么换个高版本的连接JAR包,以前遇到过!!
jerrypiaopiao 2009-11-24
  • 打赏
  • 举报
回复
DatabaseConn楼主自己定义的?
conn=Conn.getConnection();
那它的getConnection()方法里是如何写的,大家都给出答案了,最有可能的就是conn是空的 了
licip 2009-11-24
  • 打赏
  • 举报
回复
是的,就这段代码来说,最有可能为NULL的对像是conn
道光2008 2009-11-24
  • 打赏
  • 举报
回复
那明显是ps=conn.prepareStatement("select * from OFFICE_WORKFLOWINSTANCE");
conn 是null嘛
CanadianTire 2009-11-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 canadiantire 的回复:]
楼上说得对,加点补充就是,如果你不是用类似hibernate等框架常用方式,那么不如把得到connection的部分独立出来,每次使用conn的时候写上:
if(conn == null)
{// getYourConnection()}

[/Quote]
奇怪,没法编辑自己的帖子哦。
CanadianTire 2009-11-24
  • 打赏
  • 举报
回复
楼上说得对,加点补充就是,如果你不是用hibernate的常用方式,那么不如把得到connection的部分独立出来,每次使用conn的时候写上:
if(conn == null)
{// getYourConnection()}
crazylaa 2009-11-24
  • 打赏
  • 举报
回复
我测试了下啊,它不报错啊。。。。
是否你在别的地方把conn关闭了,导致
ps=conn.prepareStatement("select * from OFFICE_WORKFLOWINSTANCE");
的时候报空指针啊?
你在这句前面加上
if(conn==null){
System.out.println("conn is null");
}
调试下吗

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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