前些日子折腾的在线拍照,由于只是更新blob字段,没有在本地保存照片,导致客户拍脑门想要的时候不能马上拿出来。没说的谁让顾客是上帝呢,做吧。使用线程池创建三个线程让自定一个线程目标共享(也就是把表里的记录分成n组同时执行导出)。程序很简单,一共四个类和一个ojdbc14.jar包。由于sql语句写错了造成多个线程对一个文件进行写操作,害的我查了半天。
首先定义分页对象也就是每个线程要处理的数据量(通过传入的总页数和总行数得到每页数量)
package com.main;
import java.util.ArrayList;
import java.util.List;
public class PageVO {
private String startRowNum;//返回查询的起始行
private String endRowNum;//返回查询的终止行
private int totalRows; // 数据查询总记录数
private int totalPages; // 分成页数
private int pageRows;//每页行数
public PageVO(){
}
public PageVO(int totalRows,int totalPages){
this.totalPages = totalPages;
this.totalRows = totalRows;
}
public PageVO(String startNum,String endNum){
this.startRowNum = startNum;
this.endRowNum = endNum;
}
public String getStartRowNum() {
return startRowNum;
}
public void setStartRowNum(String startRowNum) {
this.startRowNum = startRowNum;
}
public String getEndRowNum() {
return endRowNum;
}
public void setEndRowNum(String endRowNum) {
this.endRowNum = endRowNum;
}
public List getPageVOList(){
List list = new ArrayList();
pageRows = totalRows/totalPages;
int currentRow = 1;//定义起始值
for (int i = 0; i
list.add(new PageVO(new Integer(currentRow).toString(),new Integer(pageRows + currentRow).toString()));
currentRow = currentRow + pageRows + 1;
}
return list;
}
}
其次获得connection类
package com.main;
impo