一部分代码如下:
    private RowSet runSQLGetRS(String strSQL, Connection conn, boolean bReadOnly, int nRow)
        throws SQLException
    {
                  rows.moveFirst();
            rs.close();
            st.close();
            conn.close();
            rs = null;
            st = null;
            conn = null;
        }
        catch(UnsupportedEncodingException e)
        {
            e.printStackTrace();
        }
          goto _L1
        local;
        if(rs != null)
        {
            rs.close();
            rs = null;
        }
        if(st != null)
        {
            st.close();
            st = null;
        }
        if(conn != null)
        {
            conn.close();
            conn = null;
        }
        JVM INSTR ret 20;//这个怎么解决
_L1:
        return rows;
    }这个是一个另外方法里面的
private RowSet runSQLGetRS(String strSQL, Connection conn, boolean bReadOnly, int nRow)
        throws SQLException
    {
        Statement st;
        ResultSet rs;
        ResultSetMetaData rsmd;
        RowSet rows;
        st = null;
        rs = null;
        rsmd = null;
        rows = new RowSet();
        System.out.println(strSQL);
        int cols;
        st = conn.createStatement();
        st.setMaxRows(nRow);
        rs = st.executeQuery(strSQL);
        rsmd = rs.getMetaData();
        cols = rsmd.getColumnCount();
        if(cols == 0)
            return null;
        try
        {
            for(int i = 0; i < cols; i++)
                if(rsmd.getColumnTypeName(i + 1).equals("CLOB"))
                    rows.setColumnTypePrecisionScale(rsmd.getColumnName(i + 1), rsmd.getColumnTypeName(i + 1), 0, 0);
                else
                    rows.setColumnTypePrecisionScale(rsmd.getColumnName(i + 1), rsmd.getColumnTypeName(i + 1), rsmd.getPrecision(i + 1), rsmd.getScale(i + 1));            Row row;
            for(; rs.next(); rows.addRow(row))
            {
                row = new Row();
                for(int i = 0; i < cols; i++)
                {
                    Column col = new Column();
                    String name = rsmd.getColumnName(i + 1);
                    String value = null;
                    boolean bo = false;
                    if(rsmd.getColumnTypeName(i + 1).equals("CLOB"))
                        bo = true;
                    else
                        value = rs.getString(i + 1);
                    if(rsmd.getColumnTypeName(i + 1).equals("CLOB"))
                        try
                        {
                            if(bo && rs.getClob(i + 1) != null)
                            {
                                BufferedReader instream = new BufferedReader(rs.getClob(i + 1).getCharacterStream());
                                StringBuffer sBuffer = new StringBuffer(4096);
                                char buffer[] = new char[4096];
                                int nLength;
                                while((nLength = instream.read(buffer)) != -1) 
                                    sBuffer.append(buffer, 0, nLength);
                                value = sBuffer.toString();
                                instream.close();
                            }
                        }
                        catch(Exception e)
                        {
                            e.printStackTrace();
                        }
                    if(left(rsmd.getColumnTypeName(i + 1).toUpperCase(), 4).equals("DATE"))
                        if(value == null)
                            value = "";
                        else
                        if(mid(value, 12, 8).equals("00:00:00"))
                            value = replaceSubString(left(value, 10), "-", "/");
                        else
                            value = replaceSubString(left(value, 19), "-", "/");
                    if(value == null)
                        value = "";
                    String value11 = new String(value.getBytes("ISO8859_1"), "GBK");
                    col.set(trimString(value));
                    col.setColumnName(name);
                    if(!bReadOnly)
                        col.setOriginalValue(trimString(value));
                    else
                        col.setOriginalValue(trimString(value));
                    row.addColumn(col);
                }            }            rows.moveFirst();
            rs.close();
            st.close();
            conn.close();
            rs = null;
            st = null;
            conn = null;
        }
        catch(UnsupportedEncodingException e)
        {
            e.printStackTrace();
        }
          goto _L1
        local;
        if(rs != null)
        {
            rs.close();
            rs = null;
        }
        if(st != null)
        {
            st.close();
            st = null;
        }
        if(conn != null)
        {
            conn.close();
            conn = null;
        }
        JVM INSTR ret 20;
_L1:
        return rows;
    }