本文目錄一覽:
- 1、java生成批量txt文件
- 2、怎麼用java同時實現批量刪除,批量修改
- 3、java 如何批量插入數據
- 4、java中怎麼實現批量錄入數據
- 5、用java怎樣實現批量列印
- 6、Java中怎樣實現批量刪除操作
java生成批量txt文件
Java生成批量txt文件,可以通過循環便利生成,示例如下:
response.setContentType(CONTENT_TYPE);
response.setHeader(“Content-disposition”, “inline;filename=\””+ new String( fileName.getBytes(“gb2312”), “ISO8859-1″ )+”\”;”);
HashMap paras = new HashMap();
paras = (HashMap)model.get(“paras”);
//要導出的文件,其實是Json對象,通知我們要導出哪些表
String files = MapUtils.getString(paras, “file”);
//解析成數組
String[] file = files.split(“,”);
//獲取壓縮包文件名
String fileName = SysParaConfig.getProperty(“fileName”);
String fileName = new String(fileName + “.zip”);
File[] files = new File[file.length];
String path = request.getRealPath(“test/download”);
//循環遍歷生成文件
for(int i = 0;i file.length;i++){
String table = file[i];
File toFile = new File(path+”/”+table+”.TXT”);
if(!toFile.exists()){
toFile.createNewFile();
}
FileOutputStream fos = new FileOutputStream(toFile);
StringBuffer sbf= new StringBuffer();
//結果集,按一定規則(比如數據間隔符)查詢表
String resultSql = “”;
String fieldSql = “”;
ListfileData =
jdbcTemplate.queryForList(fieldSql + ” union all ” +resultSql );
int dataSize = fileData.size();
for(int j = 0; j dataSize; j++){
String result = (String)fileData.get(j).get(“data”);
sbf.append(result);
if(j != dataSize -1){
sbf.append(“\r\n”);
}
}
}
fos.write(strBuf.toString().getBytes(“GBK”));
fos.flush();
fos.close();
}
怎麼用java同時實現批量刪除,批量修改
/*
怎麼用java同時實現批量刪除,批量修改?
*/
//1,可以利用循環批量來操作數組元素
int arr[] = new int[100];//定義一個數組,長度為100
//對該數組進行批量賦值
for (int i = 0; i arr.length; i++) {
arr[i] = i;
}
//2,對於集合,可以使用removeALL方法進行批量刪除
ListString list = new ArrayListString();
list.add(“1”);
list.add(“2”);
list.add(“3”);
list.add(“4”);
list.add(“5”);
list.removeAll(list);
System.out.println(list);
//這上是java自帶的一些方法
//3,JDBC
/**
* 對於資料庫的操作,就需要用SQL語言來批量處理了;
* 比如:select *from EMP;
*
* 利用JDBC的一些方法,比如預處理命令,可以對資料庫進行批量操作,
*/
java 如何批量插入數據
通過jdbc就可以執行批量插入了。
以下案例:
1、逐條執行10萬次
2、分批執行將10萬分成m批,每批n條,分多種分批方案來執行。
/**
* 批處理執行
*
* @param m 批次
* @param n 每批數量
* @throws Exception 異常時拋出
*/
public static void testInsertBatch(int m, int n) throws Exception {
init(); //初始化環境
Long start = System.currentTimeMillis();
for (int i = 0; i m; i++) {
//從池中獲取連接
Connection conn = myBroker.getConnection();
Statement stmt = conn.createStatement();
for (int k = 0; k n; k++) {
String sql = “\n” +
“insert into testdb.tuser \n” +
“\t(name, \n” +
“\tremark, \n” +
“\tcreatetime, \n” +
“\tupdatetime\n” +
“\t)\n” +
“\tvalues\n” +
“\t(‘” + RandomToolkit.generateString(12) + “‘, \n” +
“\t'” + RandomToolkit.generateString(24) + “‘, \n” +
“\tnow(), \n” +
“\tnow()\n” +
“)”;
//加入批處理
stmt.addBatch(sql);
}
stmt.executeBatch(); //執行批處理
stmt.close();
myBroker.freeConnection(conn); //連接歸池
}
Long end = System.currentTimeMillis();
System.out.println(“批量執行” + m + “*” + n + “=” + m * n + “條Insert操作,共耗時:” + (end – start) / 1000f + “秒!”);
}
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批量列印功能的具體工具類,其中的Info類和UserClass為具體的快遞面單中要列印的信息,以參數的方式傳遞過來,循環調用Java PrinterJob服務進行列印;這裡的快遞尺寸已經調整好,可以使用,如需添加只要根據實際的面單進行調整,也可以專門寫一個介面類的形式來創建快遞面單的尺寸,本人沒有嘗試;如遇問題歡迎留言,共同探討!
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.Book;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.JOptionPane;
import com.myprint.model.Info;
import com.myprint.model.UserClass;
public class PrintUtil implements Printable{
/**
* 紙張尺寸
*/
private double width;
private double height;
/**
* 列印起始坐標
*/
private double startX;
private double startY;
//列印頁數
private int pages;
//列印數據坐標
private MapString, Float pcoord;
//發件方信息
private SenderInfo info;
//列印數據源
private ListUserClass sourcelist;
//private int PAGES = 0;
//private PrintPaper printpaper;
private UserObject obj;
public PrintUtil(){}
public PrintUtil(int expkind, UserObject obj, ListObject sourcelist)
{
this.pcoord = this.pcoord == null ? new HashMapString, Float() : this.pcoord;
this.pcoord.clear();
this.info = info;
this.sourcelist = sourcelist;
switch(expkind)
{
case 0: //EMS
this.width = 652;
this.height = 360;
this.startX = 30;
this.startY = 80;
this.pages = this.sourcelist == null ? 0 : this.sourcelist.size();
pcoord.put(“nameX”, 30F);
pcoord.put(“nameY”, 80F + 30F);
pcoord.put(“numX”, 30F + 90F);
pcoord.put(“numY”, 80F + 30F);
pcoord.put(“cmpX”, 30F);
pcoord.put(“cmpY”, 80F + 60F);
pcoord.put(“addrX”, 30F);
pcoord.put(“addrY”, 80F + 90F);
pcoord.put(“RnameX”, 30F + 290F);
pcoord.put(“RnameY”, 80F + 30F);
pcoord.put(“RnumX”, 30F + 390);
pcoord.put(“RnumY”, 80F + 30);
pcoord.put(“RcmpyX”, 30F + 280);
pcoord.put(“RcmpyY”, 80F + 55);
pcoord.put(“RaddrX”, 30F + 280);
pcoord.put(“RaddrY”, 80F + 90);
break;
case 1://順風快遞
this.width = 632;
this.height = 412;
this.startX = 40;
this.startY = 30;
this.pages = this.sourcelist == null ? 0 : this.sourcelist.size();
pcoord.put(“nameX”, 285F);
pcoord.put(“nameY”, 126F);
pcoord.put(“numX”, 200F);
pcoord.put(“numY”, 185F);
pcoord.put(“cmpX”, 120F);
pcoord.put(“cmpY”, 126F);
pcoord.put(“addrX”, 120F);
pcoord.put(“addrY”, 145F);
pcoord.put(“RnameX”, 275F);
pcoord.put(“RnameY”, 240F);
pcoord.put(“RnumX”, 200F);
pcoord.put(“RnumY”, 300F);
pcoord.put(“RcmpyX”, 130F);
pcoord.put(“RcmpyY”, 240F);
pcoord.put(“RaddrX”, 130F);
pcoord.put(“RaddrY”, 270F);
break;
case 2://申通快遞
this.width = 652;
this.height = 360;
this.startX = 30;
this.startY = 80;
this.pages = this.sourcelist == null ? 0 : this.sourcelist.size();
pcoord.put(“nameX”, 42F);
pcoord.put(“nameY”, 100F);
pcoord.put(“numX”, 62F);
pcoord.put(“numY”, 200F);
pcoord.put(“cmpX”, 42F);
pcoord.put(“cmpY”, 126F);
pcoord.put(“addrX”, 42F);
pcoord.put(“addrY”, 155F);
pcoord.put(“RnameX”, 320F);
pcoord.put(“RnameY”, 100F);
pcoord.put(“RnumX”, 330F);
pcoord.put(“RnumY”, 200F);
pcoord.put(“RcmpyX”, 310F);
pcoord.put(“RcmpyY”, 126F);
pcoord.put(“RaddrX”, 310F);
pcoord.put(“RaddrY”, 155F);
break;
default:
break;
}
}
/**
* @param Graphic指明列印的圖形環境
* @param PageFormat指明列印頁格式(頁面大小以點為計量單位,1點為1英才的1/72,1英寸為25.4毫米。A4紙大致為595×842點)
* @param pageIndex指明頁號
**/
public int print(Graphics gra, PageFormat pf, int pageIndex) throws PrinterException {
//轉換成Graphics2D
Graphics2D g2 = (Graphics2D) gra;
//設置列印顏色為黑色
g2.setColor(Color.black);
switch(pageIndex){
case 0:
Font font = new Font(“新宋體”, Font.PLAIN, 13);
g2.setFont(font);//設置字體
//BasicStroke bs_3=new BasicStroke(0.5f);
float[] dash1 = {2.0f};
g2.setStroke(new BasicStroke(0.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 2.0f, dash1, 0.0f));
g2.drawString(info.getSname() == null ? “” : info.getSname(), pcoord.get(“nameX”), pcoord.get(“SnameY”));
g2.drawString(info.getSnum() == null ? “” : info.getSnum(), pcoord.get(“numX”), pcoord.get(“numY”));
g2.drawString(info.getScmp() == null ? “” : info.getScmp(), pcoord.get(“cmpX”), pcoord.get(“cmpY”));
g2.drawString(info.getSaddr() == null ? “” : info.getSaddr(), pcoord.get(“addrX”), pcoord.get(“addrY”));
g2.drawString(obj.getRname() == null ? “” : obj.getRname(), pcoord.get(“rnameX”), pcoord.get(“rnameY”));
g2.drawString(obj.getRnum() == null ? “” : obj.getRnum(), pcoord.get(“rnumX”), pcoord.get(“rnumY”));
g2.drawString(obj.getRcmpy() == null ? “” : obj.getRcmpy(), pcoord.get(“rcmpyX”), pcoord.get(“rcmpyY”));
g2.drawString(obj.getRaddr() == null ? “” : obj.getRaddr(), pcoord.get(“raddrX”), pcoord.get(“raddrY”));
return PAGE_EXISTS;
default:
return NO_SUCH_PAGE;
}
}
// 列印內容到指定位置
public void printContent()
{
if (sourcelist != null sourcelist.size() 0) // 當列印內容不為空時
{
//PAGES = printpaper.getSourcelist().size(); // 獲取列印總頁數
// 書、文檔
Book book = new Book();
// 設置成豎打
PageFormat pf = new PageFormat();
pf.setOrientation(PageFormat.PORTRAIT);
// 通過Paper設置頁面的空白邊距和可列印區域。
Paper p = new Paper();
p.setSize(this.width,this.height);//紙張大小
p.setImageableArea(this.startX,this.startY, this.width,this.height);//設置列印區域
pf.setPaper(p);
// 把 PageFormat 和 Printable 添加到書中,組成一個頁面
book.append(this, pf);
//獲取列印服務對象
PrinterJob job = PrinterJob.getPrinterJob();
// 設置列印類
job.setPageable(book);
try {
//直接列印
for(UserObject obj: sourcelist)
{
this.obj= obj;
job.print();
}
//}
} catch (PrinterException e) {
e.printStackTrace();
}
}
else
{
// 如果列印內容為空時,提示用戶列印將取消
JOptionPane.showConfirmDialog(null,
“對不起, 列印內容為空, 列印取消!”,
“提示”, JOptionPane.DEFAULT_OPTION,
JOptionPane.WARNING_MESSAGE);
}
}
}
Java中怎樣實現批量刪除操作
本文是記錄Java中實現批量刪除操縱(Java對資料庫進行事務處置),在開始之前先來看上面這樣的一個頁面圖:
上面這張圖片表現的是從資料庫中查詢出的出租信息,信息中進行了分頁處置,然後每行的後面提供了一個複選按鈕和對應的一個刪除操縱,可以選中多個進行操縱,這裡主要是進行刪除操縱。在執行刪除操縱之前先要選中對應的行信息,點擊刪除選中按鈕進行刪除。當進行多條信息刪除的時候,需要使用java的事務處置機制對資料庫進行刪除,也就是說刪除的時候如果選中的要刪除的說有信息其中一條沒有成功刪除的話,那麼就都不刪除。
現在是在java中對資料庫實現這一操縱,我們可看上面的代碼,它實現了對資料庫的批量刪除操縱,代碼如下:
public Connection con=null;
public PreparedStatement pstmt=null;
/**
* 失掉連接對象
*/
public void getConnection(){
String driver=”com.mysql.jdbc.Driver”;
String url=”jdbc:mysql://localhost:3306/zufang?user=rootpassword=rootuseUnicode=truecharacterEncoding=GB2312″;
try {
Class.forName(driver);
con=DriverManager.getConnection(url,”root”,”root”);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
/** * 批量刪除信息表中的信息 * @param sql * @param param * @return */ public boolean updateBatchDel(String sql,String[] param){ boolean flag = false; getConnection(); try { con.setAutoCommit(false); pstmt = con.prepareStatement(sql); for(int i =0 ;iparam.length;i++){ pstmt.setString(1,param[i].trim()); pstmt.addBatch(); } pstmt.executeBatch(); //批量執行 con.commit();//提交事務 flag = true; } catch (SQLException e) { try { con.rollback(); //進行事務回滾 } catch (SQLException ex) { ex.printStackTrace(); } }finally { closeAll(null,pstmt,con); } return flag; }
當然上面是進行批量刪除,如果我們只刪除一條信息的話也可以使用獨自的刪除方法,即是:點擊刪除,當然上面的方法也是可以完成的,還是再看一下吧:
/**
* 刪除某條求租表中的信息
* @param id 刪除信息的id
* @return 如果刪除成功,返回true;否則返回false
*/
public boolean delQiuZu(String id){
boolean flag=false;
String sql=”delete from qiuzhu where id=?”;
String[] param={id};
flag=bd.updateDate(sql, param);
return flag;
}
控制器servlet中的處置操縱代碼如下:
package com.sxt.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sxt.biz.ChuZuBiz;
import com.sxt.biz.PageBiz;
import com.sxt.biz.QiuZuBiz;
public class OutDateQiuzuServlet extends HttpServlet {
QiuZuBiz qzb=new QiuZuBiz();
PageBiz pb=new PageBiz();
int pagesize=10;
boolean flag=true;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding(“gb2312”);
response.setContentType(“text/html;charset=gb2312”);
int countpage=pb.getOutDatePageCountQiuzu(pagesize);
request.setAttribute(“countpage”, countpage);
String nowpage=request.getParameter(“nowpage”);
String id=request.getParameter(“id”);
PrintWriter out = response.getWriter();
String command = request.getParameter(“command”);
if (“del”.equals(command)) {
String[] qiuzuIds = request.getParameterValues(“selectFlag”);
boolean flag = qzb.delQiuzuMany(qiuzuIds);
if(flag){
out.print(“scriptalert(‘刪除成功!’);/script”);
}else{
out.print(“scriptalert(‘刪除失敗!’);/script”);
}
}
if(nowpage==null){
nowpage=”1″;
}
if(Integer.valueOf(nowpage)=0){
nowpage=”1″;
}
if(Integer.valueOf(nowpage)countpage){
nowpage=countpage+””;
}
if(id!=null){
flag=qzb.delQiuZu(id);
}
request.setAttribute(“currentpage”, nowpage);
List list=qzb.getOutDateQiuZuInfo(Integer.valueOf(nowpage), pagesize);
request.setAttribute(“list1”, list);
if(flag){
request.getRequestDispatcher(“admin/OutDateQiuzu.jsp”).forward(request, response);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
上面是對資料庫的操縱代碼,上面看一下頁面中怎樣實現的,代碼如下:
每日一道理
燈,帶有一種明亮的光,每當深夜來臨,是它陪伴著你,如此默默無聞。它是平凡的,外表華麗與否,那都是一樣的,珍珠點綴,水晶加飾的燈它只能用以裝飾,來滿足人們的虛榮心,比起這,普普通通的日光燈是幸運的,因為它照明的本性沒有改變,如同生活中的一部分人平平凡凡卻實實在在。
%@ page language=”java” import=”java.util.*” pageEncoding=”GB18030″%
%@ taglib uri=”#” prefix=”c” %
html
head
titlehouse/title
script type=”text/javascript”
//刪除用戶控制
function deleteSelect() {
var select = document.getElementsByName(“selectFlag”);
var flag = false;
for (var i=0; iselect.length; i++) {
if (select[i].checked) {
flag = true;
break;
}
}
if (!flag) {
alert(“請選擇需要刪除的過期求租信息!”);
return;
}
if (window.confirm(“確認要刪除過期的求租信息嗎?”)) {
with (document.getElementById(“userform”)) {
action=”OutDateQiuzuServlet?command=del”;
method=”post”;
submit();
}
}
}
//全選/反選操縱
function checkAll(ifAll) {
var select = document.getElementsByName(“selectFlag”);
for(var i = 0;iselect.length;i++){
select[i].checked = ifAll.checked;
}
}
/script
/head
link rel=”stylesheet” href=”./skin/css/lianjie.css” type=”text/css” /
body
form name=”userform” action=”ChuzuServlet” method=”get”
table width=”1000″ height=”80″ cellpadding=”0″ cellspacing=”1″ bgcolor=”#CCCCCC”
tr
td height=”40″ align=”center” bgcolor=”#F1F1F1″font color=”#FF0000″b已過期的求租信息/b/font/td
/tr
tr
td align=”left”
input name=”btnDelete” class=”button1″ type=”button”
id=”btnDelete” value=”刪除選中” onClick=”deleteSelect()”
/td
/tr
/table
table width=”1000″ cellpadding=”0″ cellspacing=”1″ bgcolor=”#CCCCCC” style=”word-break:break-all;”
tr align=”center”
td width=”15%” height=”25″ bgcolor=”#F1F1F1″font size=”3″ input type=”checkbox” name=”ifAll” title=”全選/反選” onClick=”checkAll(this)” checked=”checked”//font/td
td width=”10%” bgcolor=”#F1F1F1″font size=”3″期望區域/font/td
td width=”15%” bgcolor=”#F1F1F1″font size=”3″裝修水平/font/td
td width=”10%” bgcolor=”#F1F1F1″font size=”3″房型/font/td
td width=”10%” bgcolor=”#F1F1F1″font size=”3″面積(平米)/font/td
td width=”10%” bgcolor=”#F1F1F1″font size=”3″價格(元)/font/td
td width=”10%” bgcolor=”#F1F1F1″font size=”3″添加日期/font/td
td width=”10%” bgcolor=”#F1F1F1″font size=”3″有效天數/font/td
td width=”10%” bgcolor=”#F1F1F1″font size=”3″殘餘天數/font/td
/tr
c:choose
c:when test=”${empty list1}”
trtd colspan=”8″ align=”center”font color=”red”還沒有過期的求租信息!/font/td/tr
/c:when
c:otherwise
c:forEach var=”qiuzu” items=”${list1}”
tr
td height=”25″ align=”center” bgcolor=”#FFFFFF”input type=”checkbox” name=”selectFlag” value=”${qiuzu.id}” checked=”checked”//font
a href=”javascript:if(confirm(‘確定要刪除這條過期的求租信息嗎?’)){location.href=’OutDateQiuzuServlet?id=${qiuzu.id}’}” style=”COLOR: #0000ff;font-size:14px; TEXT-DECORATION:none;”font size=”2″刪除/font/a/td
td align=”center” bgcolor=”#FFFFFF”font size=”2″${qiuzu.qwqy}/font/td
td align=”center” bgcolor=”#FFFFFF”font size=”2″${qiuzu.zxcd}/font/td
td align=”center” bgcolor=”#FFFFFF”font size=”2″${qiuzu.hx}/font/td
td align=”center” bgcolor=”#FFFFFF”font size=”2″${qiuzu.jzmj}/font/td
td align=”center” bgcolor=”#FFFFFF”font size=”2″${qiuzu.zj}/font/td
td align=”center” bgcolor=”#FFFFFF”font size=”2″${qiuzu.addDate}/font/td
td align=”center” bgcolor=”#FFFFFF”font size=”2″${qiuzu.yxts}/font/td
td align=”center” bgcolor=”#FFFFFF”font size=”2″ color=”red”${qiuzu.syts}/font/td
/tr
/c:forEach
/c:otherwise
/c:choose
/table
/p
table width=”300″ align=”center”
tr
td align=”center”font size=”2″共${countpage}頁/font/td
td align=”center”font size=”2″${currentpage}/${countpage}頁/font/td
td align=”center”a href=”OutDateQiuzuServlet?nowpage=${1}”font size=”2″首頁/font/a/td
td align=”center”a href=”OutDateQiuzuServlet?nowpage=${currentpage-1}”font size=”2″上一頁/font/a/td
td align=”center”a href=”OutDateQiuzuServlet?nowpage=${currentpage+1}”font size=”2″下一頁/font/a/td
td align=”center”a href=”OutDateQiuzuServlet?nowpage=${countpage}”font size=”2″尾頁/font/a/td
/tr
/table
/form
/body
/html
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/189053.html