分批查询?
创新互联建站企业建站,十载网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于网站设计、成都网站设计中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。
是分页查询吧。现在使用的数据中都有分页的sql语句。
mysql的 select * from t_user limit 0,10
这样就能查用户表中的前十条数据了
import java.util.ArrayList;
import java.util.List;
public class FenDuan {
/**
* @param args
*/
public static void main(String[] args) {
//1.总记录数
ListString oldList = new ArrayListString();
for (int i = 0; i 1045; i++) {
oldList.add((i+1)+"");
}
//2.分页数据信息
int totalSize = oldList.size(); //总记录数
int pageSize = 10; //每页N条
int totalPage = totalSize/pageSize; //共N页
if (totalSize % pageSize != 0) {
totalPage += 1;
if (totalSize pageSize) {
pageSize = oldList.size();
}
}
System.out.println("循环保存的次数:"+totalPage);//循环多少次
for (int pageNum = 1; pageNum totalPage+1; pageNum++) {
int starNum = (pageNum-1)*pageSize;
int endNum = pageNum*pageSizetotalSize?(totalSize):pageNum*pageSize;
System.out.println("起始:"+starNum+"-"+endNum);
String str = "";
for (int i = starNum; i endNum; i++) {
str += oldList.get(i) +" ";
}
System.out.println("第"+pageNum+"批:" +str);
}
}
}
这个只是一个思路
public class test{
public static void main(String[] args) {
ListString aa = new ArrayListString();
for (int i = 1; i = 520; i++) {
aa.add(i+"");
}
double num=0;//一共读几次,页码
if(0!=aa.size()){
double a=aa.size();
double b=50;
num=Math.ceil(a/b);//读取次数(一共几页),小数 进 1
}
for (int i = 0; i =num; i++) {
int n =i*50;//每次开始读取的下标
String tex="";
if(i+1num){ //i+1 代表 (下一页)
tex+=aa.subList(n, n+50);
}else if(i+1==num){//当 位于最后一页时,计算要读多少个数( aa.size()-i*50)
tex+=aa.subList(n, n+aa.size()-i*50);
}
System.out.println(tex);
}
}
}
写了一个例子,没做优化,可以看看 方法,仅供参考;
读取数据估计是没办法了,重点可以放在写入的操作上,粗略的认为,你使用框架进行数据库写入操作还不如用使用java原生的jdbc进行操作然后使用jdbc 的原生的批处理,我觉得肯定比框架快。我记得我当时插入10w条数据,只用了3秒,不过用的是oracle数据库。进行边读取边插入,这样占用的内存也相对小一些
你这问题太大了
HSSFWorkbook 是导出excel的工具,可是实现导出excel控制条数
//开始打印
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet=wb.createSheet("sheet1");
HSSFRow row = sheet.createRow(0);
//设置第一行标题
HSSFCell cell;
JobColumn jobColumn = null;
int colsAddSize = NewmasterstudentAction.COLS4EXPORT_CODE.length;
for(int i=0 ; icolsAddSize ; i++){
cell = row.createCell((short)i);
cell.setCellValue(NewmasterstudentAction.COLS4EXPORT_CODE[i]+"("+NewmasterstudentAction.COLS4EXPORT_NAME[i]+")");
}
for(int i=0;ijobList.size();i++){
UserJobColumn userJob = jobList.get(i);
jobColumn = userJob.getJobColumn();
cell = row.createCell((short)(i+colsAddSize));
cell.setCellValue(jobColumn.getColumnCode()+"("+jobColumn.getColumnName()+")"); //字段代码
}
//打印记录
SetEntryString,ListJobRecord entrySet = des.entrySet();
IteratorEntryString, ListJobRecord it = entrySet.iterator();
int index = 1;
while(it.hasNext()){
EntryString, ListJobRecord en = it.next();
row = sheet.createRow(index++);
String xh = en.getKey();
//打印学生信息
cell = row.createCell((short)0);
cell.setCellValue(xh);
NewMasterStudent stu = studentMap.get(xh);
if(stu != null){
cell = row.createCell((short)1);
cell.setCellValue(stu.getYbd() ? "是" : "否");
cell = row.createCell((short)2);
cell.setCellValue(stu.getRemark() == null ? "" : stu.getRemark());
}
//打印记录
ListJobRecord records = en.getValue();
for(int i=0 ; i jobList.size() ; i++){
cell = row.createCell((short)(i+colsAddSize));
UserJobColumn g = jobList.get(i);
JobRecord record = null;
if(i records.size()){
record = records.get(i);
if(!g.getJobColumn().getId().equals(record.getJobColumn().getId())){
record = new JobRecord();
record.setJobColumn(g.getJobColumn());
records.add(i, record);
}
}else{
record = new JobRecord();
record.setJobColumn(g.getJobColumn());
records.add(i, record);
}
if(Constant.NS_JOBCOLUMN_TYPE_INPUT.equals(record.getJobColumn().getColumnType())){
cell.setCellValue(record.getEditLr());
}else if(Constant.NS_JOBCOLUMN_TYPE_SELECT.equals(record.getJobColumn().getColumnType())){
cell.setCellValue(record.isEditState() ? "是":"否");
}else if(Constant.NS_JOBCOLUMN_TYPE_OPTION.equals(record.getJobColumn().getColumnType())){
SyGeneralCode select = record.getSelectedValue();
if(select != null){
cell.setCellValue(select.getCode()+" | "+select.getCnName());
}
}
}
}
ZipEntry 可以实现导出zip文件
if (files[i].exists() !files[i].isDirectory()) {
String zjhmImg = files[i].getName();
if (zjhmMap.get(zjhmImg) != null) {
num++;
FileInputStream fi = new FileInputStream(files[i]);
origin = new BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry(files[i].getName());
out.putNextEntry(entry);
int count;
while ((count = origin.read(data, 0, BUFFER)) != -1) {
out.write(data, 0, count);
}
out.setEncoding("GBK");
origin.close();