这是我可以选到哪页,就把哪页的数据保存下来的功能,放在这防止日后忘记,谁看到了,能用到就拿去用吧,不过别忘了顶我一下

//保存一页
 public boolean sqlDriverQuerySaveFileSqlBeanPage(String sessionDriverQueryNameInput,String sessionDriverQueryIdentityCardNumberInput,String sessionDriverQueryRecordNumberInput,String sessionDriverQueryAccumulativeTotalIntegralInput,String sessionDriverQueryPermitDriverModelInput,String sessionDriverQueryManageDepartmentInput,Object sessionPageStartRow,Object sessionPageEndRow) throws Exception
 {
  boolean sqlDriverQuerySaveFileSqlError = false ;
  ResultSet rs = null;

  String xm ;
  String sfzmhm ;
  String dabh ;
  String ljjf ;
  String zjcx ;
  String glbm ;

  if(sessionDriverQueryNameInput!=null)
  {
   xm = "and p.xm ="+"'"+sessionDriverQueryNameInput+"'"  ;
  }
  else
  {
   xm = "" ;
  }
  if(sessionDriverQueryIdentityCardNumberInput!=null)
  {
   sfzmhm = "and d.sfzmhm ="+"'"+sessionDriverQueryIdentityCardNumberInput+"'" ;
  }
  else
  {
   sfzmhm = "" ;
  }
  if(sessionDriverQueryRecordNumberInput!=null)
  {
   dabh = "and d.dabh ="+"'"+sessionDriverQueryRecordNumberInput+"'" ;
  }
  else
  {
   dabh = "" ;
  }
  
  if(sessionDriverQueryAccumulativeTotalIntegralInput!=null)
  {
   ljjf = "and d.ljjf ="+"'"+sessionDriverQueryAccumulativeTotalIntegralInput+"'" ;
  }
  else
  {
   ljjf = "" ;
  }
  if(sessionDriverQueryPermitDriverModelInput!=null)
  {
   zjcx = "and d.zjcx ="+"'"+sessionDriverQueryPermitDriverModelInput+"'" ;
  }
  else
  {
   zjcx = "" ;
  }
  
  if(sessionDriverQueryManageDepartmentInput!=null)
  {
   glbm = "and d.glbm ="+"'"+sessionDriverQueryManageDepartmentInput+"'" ;
  }
  else
  {
   glbm = "" ;
  }
  try 
  {
   FileDialog dlg;  //定义一个文件存取窗口
   // 每个swt程序在最开始都必须创建一个Display对象。它负责swt和操作系统之间的通信。它将swt/JFace的各种调用转化为系统的底层调用
   Display display = new Display();
   System.out.println(display);
   Shell shell = new Shell(display);//一个Shell对象就是一个窗口。你可以在上面放置各种部件创建丰富的图形界面。
   dlg = new FileDialog(shell, SWT.SAVE);// 设置为保存对话框
         // 设置保存类型
         dlg.setFilterNames(new String[]{
                   "Text Files(*.txt)",
                   "Excel Files (*.xls)",
                   "All Files (*.*)"
                 });
         dlg.setFilterExtensions(new String[] {
           "*.txt", "*.xls",  "*.*"
         });
         String fileName = null;//所填写的文件名字

         String fn = "";//用来判断用户有没填写文件名字

         if (fn.equals(""))
         {
          fileName = dlg.open();//打开保存窗口
          if(fileName != null)
           fn = fileName;
         }
         if (fn != "")
         {
          final String SQL = "select p.xm,d.sfzmhm,p.djzsxxdz,d.dabh,d.zjcx,d.yxqs,d.yxqz,d.ljjf,d.glbm from drv_admin.drivinglicense d ,drv_admin.person p where p.sfzmhm = d.sfzmhm "+xm+" "+sfzmhm+" "+dabh+" "+ljjf+" "+zjcx+" "+glbm+" " ;
          System.out.println(SQL);
   
          rs = PageDBConnection.getResultSet(SQL);
   
          byte[] b = null;
          FileOutputStream fos = new FileOutputStream(fn);
          OutputStreamWriter out = new OutputStreamWriter(fos);//写入文件流
          out.write(dlg.getText());
          ResultSetMetaData meta = rs.getMetaData();//获得ResultSetMeataData对象。所有方法的参数都是列的索引号,即第几列,从1开始
          for(int i=1; i<meta.getColumnCount();i++)//获得该ResultSet所有列的数目
          {
           b = (meta.getColumnName(i) + "\t").getBytes();//获得i列对应数据类型的类,输出列
           fos.write(b);//写入文件
          }
          // thisPageStartRow是获得了当前页面的起始行,thisPageEndRow是当前页面的结束行
          int thisPageStartRow = Integer.parseInt(sessionPageStartRow.toString());
          int thisPageEndRow = Integer.parseInt(sessionPageEndRow.toString());
          //利用thisPageStartRowOne判断应该保存的是哪页
          int thisPageStartRowOne = 0 ;
          while(rs.next())
          {
           //一直循环到想保存的页,保存页之前的不进行操作
           if(thisPageStartRowOne<thisPageStartRow)
           {
            thisPageStartRowOne++ ;
           }
           //判断是否是需要保存的页
           else if(thisPageStartRowOne>=thisPageStartRow&&thisPageStartRowOne<=thisPageEndRow)
           {
            thisPageStartRowOne++;
            fos.write("\r\n".getBytes());//让数据换行
            for(int i=1;i<meta.getColumnCount();i++)
            {
              b = (rs.getString(i) + "\t").getBytes();//输出数据,循环一次数据一个字段
              fos.write(b);
            }
           }
           //一旦保存完毕,则退出循环
           if(thisPageStartRowOne>=thisPageEndRow)
           {
            sqlDriverQuerySaveFileSqlError = true;
            break ;
           }
          }
          fos.close();//该关的关
          out.close();
          shell.setText(fn);
    MessageBox successBox = new MessageBox(shell);
    successBox.setText("信息");
    successBox.setMessage("保存文件成功!");
    successBox.open();
         }
         //display.dispose();和display.sleep();其中有一个能够执行到程序都可以正常
         display.dispose(); // 释放底层的资源
   shell.dispose();
   while (!shell.isDisposed()) // 当窗体未被关闭时执行循环体内的代码
      {
       // 如果未发生事件,通过sleep方法进行监视事件队列
       if (!display.readAndDispatch()) 
       {
        display.sleep();//关闭线程
       }
      }
  }
  catch (SQLException e) 
  {
   e.printStackTrace();
  } 
  finally 
  {
   if (rs != null) 
   {
    try 
    {
     rs.close();
    } 
    catch (SQLException e) 
    {
     e.printStackTrace();
    }
   }
  }
  return sqlDriverQuerySaveFileSqlError;
 }

 

黑色头发  http://heisetoufa.iteye.com