代码如下 public String[] querySelectedColumnName(String name,Long userid) throws Exception {
Connection conn=null;    
        Statement stm=null;    
        String sql="";
        String[] selectcloumn=new String[]{};
        String scloumn="";
        ResultSet rs=null;
        try {    
            conn=this.getHibernateTemplate().getSessionFactory().openSession().connection();    
            stm = conn.createStatement();  
            sql+="select SELECTCOLUMNNAME from t_diy where TABLENAME='"+name+"' and USERID="+userid+"  and rownum<=1";
            System.out.println("sql:"+sql);
            rs=stm.executeQuery(sql); 
            if(rs!=null && rs.next())
            {
               scloumn+=rs.getString(1);
               selectcloumn=scloumn.split(",");
            }
        }
        catch(Exception ex)
        {ex.printStackTrace();}
        finally {
        try {
           if(rs != null) {
     rs.close();
     rs = null;
    }
    if(stm != null){
     stm.close();
     stm = null;
    }
    if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
System.err.println(e.getMessage());
}
}
   } catch (SQLException e) {
    e.printStackTrace();
   }
        }
        return selectcloumn;
}
一开始报 ” 用尽的 Resultset“
if(rs.next())=》if(rs!=null && rs.next())又开始报java.lang.NullPointerException
at oracle.jdbc.driver.OracleStatement.clearDefines(OracleStatement.java:1176)
at oracle.jdbc.driver.OracleStatement.end_of_result_set(OracleStatement.java:3150)
at oracle.jdbc.driver.OracleResultSetImpl.internal_close(OracleResultSetImpl.java:1474)
at oracle.jdbc.driver.OracleResultSetImpl.close(OracleResultSetImpl.java:92)
at org.apache.commons.dbcp.DelegatingResultSet.close(DelegatingResultSet.java:151)
at com.wprss.dao.impl.UserDAOImpl.queryColumnName(UserDAOImpl.java:494)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
at $Proxy2.queryColumnName(Unknown Source)
at com.wprss.action.UserAction.showColumnName(UserAction.java:729)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.wprss.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.wprss.util.RightFilter.doFilter(RightFilter.java:35)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.wprss.util.NoCacheFilter.doFilter(NoCacheFilter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:831)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:639)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1203)
at java.lang.Thread.run(Thread.java:595)sql肯定没问题!谢

解决方案 »

  1.   


    我铁定就返回一条结果 也得用while吗 是这样吗
      

  2.   

    只有一条结果可以不用while。你把你拼装的sql贴出来看看。
      

  3.   

    if(rs!=null && rs.next())
      {
      scloumn+=rs.getString(1);
     }
    selectcloumn=scloumn.split(",");
      

  4.   

    close就close了。就别再设置成Null了。。