「java批量添加数据」java批量添加数据之循环
今天给各位分享java批量添加数据的知识,其中也会对java批量添加数据之循环进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java怎么将选中的多行数据插入表中
java 连接数据库时,往数据库一次添加多条数据,可以在 DAO 层,使用
executeBatch0批量插入数据,如下代
码:
conn = DBToolkit .getConnection0;
Statement stmt =
conn . createStatementO ; j //连续添加多条 SQL
stmt . addBatch (" insert into testdb . book ( kind , name ) values ( java ', java in j
aciton )");
stmt . addBatc (" insert into testdb . book ( kind , name ) values ( c ',’ c in aciton )");//执行批量执行
stmt .executeBatch0);
JAVA怎么向Excel中写入批量数据?
public static void drawExcel(HSSFWorkbook wb, String sheetName, String title, int n, List exlList, int[] index){\x0d\x0aList exList =(List)exlList;\x0d\x0aint len = exList.get(0).length;\x0d\x0a// 创建一个sheet表单\x0d\x0aHSSFSheet sheet = wb.createSheet(sheetName);\x0d\x0aRegion region = null;\x0d\x0a//样式\x0d\x0aHSSFCellStyle cellStyle1 = setStyleBorder(wb);\x0d\x0aHSSFCellStyle cellStyle2 = setStyleFontBorder(wb);\x0d\x0a// 创建标题行\x0d\x0aHSSFRow row = sheet.createRow(0);\x0d\x0arow.setHeight((short)500);\x0d\x0a// 创建单元格\x0d\x0aHSSFCell cell = null;\x0d\x0aif(title != null !"".equals(title)){\x0d\x0aregion = new Region(0, (short)0, 0, (short)(len- 1));\x0d\x0asheet.addMergedRegion(region);\x0d\x0a\x0d\x0acell = row.createCell(0);\x0d\x0a// 标题写入单元格\x0d\x0acell.setCellValue(title);\x0d\x0a cell.setCellStyle(setStyleFontSize(wb, 18));\x0d\x0a}else{\x0d\x0an = n - 1;\x0d\x0a}\x0d\x0a\x0d\x0a NumberFormat formatter = NumberFormat.getNumberInstance();\x0d\x0a formatter.setMaximumFractionDigits(8);\x0d\x0a//合计信息\x0d\x0aDouble[] sum = new Double[len];\x0d\x0aObject[] s = null;\x0d\x0afor(int i = 0; i s = exList.get(i);\x0d\x0arow = sheet.createRow(i + n);\x0d\x0a// 创建数据行\x0d\x0afor(int j = 0; j cell = row.createCell(j);\x0d\x0a/***\x0d\x0a* jobin create\x0d\x0a*/\x0d\x0aif(s[j] instanceof Integer || s[j] instanceof Float){\x0d\x0acell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);\x0d\x0a}else{\x0d\x0acell.setCellType(HSSFCell.CELL_TYPE_STRING);\x0d\x0a}\x0d\x0aif(!StringUtils.isNotEmpty(s[j])){\x0d\x0acell.setCellStyle(cellStyle1);\x0d\x0acontinue;\x0d\x0a}\x0d\x0aString[] rs = null;\x0d\x0aint l = 3000;\x0d\x0aif(i == 0 s[j].toString().indexOf(",") 0){\x0d\x0ars = s[j].toString().split(",");\x0d\x0acell.setCellValue(rs[0]);\x0d\x0al = Integer.parseInt(rs[1]);\x0d\x0a}else{\x0d\x0acell.setCellValue(s[j].toString());\x0d\x0a}\x0d\x0aif(i == 0){\x0d\x0acell.setCellStyle(cellStyle2);\x0d\x0a//设置列宽\x0d\x0a//if(j == 0){\x0d\x0a sheet.setColumnWidth(j, l);\x0d\x0a//}else if(j == s.length -1){\x0d\x0a// sheet.setColumnWidth(j, 5000);\x0d\x0a//}else{\x0d\x0a// sheet.setColumnWidth(j, 3000);\x0d\x0a//}\x0d\x0a}else{\x0d\x0acell.setCellStyle(cellStyle1);\x0d\x0a//合计统计\x0d\x0aif(index != null){\x0d\x0afor(int in : index){\x0d\x0aif(in == j){\x0d\x0aif(sum[in] == null) sum[in] = 0.0;\x0d\x0asum[in] += Double.parseDouble(s[j].toString());\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0a//合计信息\x0d\x0aif(index != null){\x0d\x0aregion = new Region(exList.size() + 1, (short)0, exList.size() + 1, (short)(index[0]-1));\x0d\x0asheet.addMergedRegion(region);\x0d\x0arow = sheet.createRow(exList.size() + n);\x0d\x0afor(int i = 0; i cell = row.createCell(i);\x0d\x0acell.setCellStyle(cellStyle2);\x0d\x0aif(i == 0){\x0d\x0acell.setCellValue("合计");\x0d\x0a}else if(sum[i] != null){\x0d\x0acell.setCellValue(formatter.format(sum[i]).replace(",", ""));\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0a}\x0d\x0a核心代码,我项目上使用的
java中怎么实现批量录入数据
批量数据进入数据库使用addBatch()和executeBatch()方法
PreparedStatement.addBatch();
......
PreparedStatement.executeBatch();
需要注意的是一次最多不要超过50条:
1.因为插入的时候数据库已经锁定,然而若是一次性插入太多会造成其他业务的等待。
2.会造成内存的溢出
举例:
PreparedStatement pst = (PreparedStatement) con.prepareStatement("insert into ***** values (?,'***')");
for (int i = 0; i 10000; i++) {
pst.setInt(1, i);
// 把一个SQL命令加入命令列表
pst.addBatch();
}
// 执行批量更新
pst.executeBatch();
// 语句执行完毕,提交本事务
con.commit();
资料来源:CSDN论坛-原资论坛料链接如下
URL SRC:
关于java批量添加数据和java批量添加数据之循环的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-07,除非注明,否则均为
原创文章,转载请注明出处。