各位高手:
我最近在用java写一个小程序(DB用Oracle)时,遇到问题,代码:
Statement st=null;
ResultSet rs1=null;
PreparedStatement pstat1=null;
String result1;
int count1=0;
ResultSet rscount1=null;
ResultSet rsid=null;................st=b9121pool.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//用的连接池
rsid=st.executeQuery("select SEQ_ID from H_SP_SEQID");
while(rsid.next())
{
seqid=rsid.getInt("SEQ_ID");
}
try
{
rsid.close();
}
catch(SQLException se)
{
logger.error(se);
}
rscount1=st.executeQuery("select count(*) as c from shortmsg_base a where .....");//条件有点复杂,涉及3张表
while(rscount1.next())
{
count1=rscount1.getInt("c");
}
try
{
rscount1.close();
System.out.println("8888888888888");
}
catch(SQLException se)
{
logger.error(se);
}
pstat1=b9121pool.prepareStatement("update H_SP_SEQID set SEQ_ID=?");
System.out.println("777777777777777");
rs1=st.executeQuery("select count(*) as c from shortmsg_base a where .....");//条件与rscount1相同
System.out.println("66666666666666");
if (count1>0)
{
System.out.println("55555555555555");
while(rs1.next()) 《《《《《《《《《《《《《================问题在此!!!
{ System.out.println("44444444444");
..................
}
}
结果能输出888888888888888、77777777777777、6666666666666666666、55555555555555
然后就报错:java.lang.NullPointerException
看样子像是记录集rs1为null?不知有没有老大遇到过?请指教,谢谢!在线急等~
我最近在用java写一个小程序(DB用Oracle)时,遇到问题,代码:
Statement st=null;
ResultSet rs1=null;
PreparedStatement pstat1=null;
String result1;
int count1=0;
ResultSet rscount1=null;
ResultSet rsid=null;................st=b9121pool.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//用的连接池
rsid=st.executeQuery("select SEQ_ID from H_SP_SEQID");
while(rsid.next())
{
seqid=rsid.getInt("SEQ_ID");
}
try
{
rsid.close();
}
catch(SQLException se)
{
logger.error(se);
}
rscount1=st.executeQuery("select count(*) as c from shortmsg_base a where .....");//条件有点复杂,涉及3张表
while(rscount1.next())
{
count1=rscount1.getInt("c");
}
try
{
rscount1.close();
System.out.println("8888888888888");
}
catch(SQLException se)
{
logger.error(se);
}
pstat1=b9121pool.prepareStatement("update H_SP_SEQID set SEQ_ID=?");
System.out.println("777777777777777");
rs1=st.executeQuery("select count(*) as c from shortmsg_base a where .....");//条件与rscount1相同
System.out.println("66666666666666");
if (count1>0)
{
System.out.println("55555555555555");
while(rs1.next()) 《《《《《《《《《《《《《================问题在此!!!
{ System.out.println("44444444444");
..................
}
}
结果能输出888888888888888、77777777777777、6666666666666666666、55555555555555
然后就报错:java.lang.NullPointerException
看样子像是记录集rs1为null?不知有没有老大遇到过?请指教,谢谢!在线急等~
求各位老大指点~!!!
java.sql.SQLException: 关闭的语句: next
这次连一开始的88888888888888也没有输出!说明前面哪里错了?请高手们指点一二!
我前面几次的ResultSet读过之后都是关掉的啊,最后的rs1之前的应该都已经关掉了,而且同样的程序,我曾经正确运行过的,不知怎么会这样的问题出来!
郁闷哪~~~
resultset是不是有个数的限制?就是一个Statement只能一定数量的ResultSet?但是我前面的ResultSet已经关闭了啊。ResultSet为什么会自动关闭呢?好多的问题
程序报错
java.sql.SQLException: 关闭的语句: getMetaData
一开始的88888888888888也没有输出!为了防止记录集没有关闭,我已经在try下面添了finally,把st,rs1,pstat1,rscount1都关了