135-1821-9792

java代码实现批处理 java批处理是什么意思

JAVA如何实现数据库的批处理操作

批量数据进入数据库使用addBatch()和executeBatch()方法

创新互联主要从事成都网站设计、做网站、成都外贸网站建设公司、网页设计、企业做网站、公司建网站等业务。立足成都服务洞头,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

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();

如何把java中的项目做成批处理?

这是我一个真实的项目。发布批处理程序,结构目录如下:

data文件存放数据,etc存放配置文件,lib,存放项目jar包,startup.bat/startup.sh启动脚本。

1、-----windows上.bat文件调用java程序。bat文件内容如下------

echo off

rem setup classpath

echo set _CP=%%_CP%%;%%1 cp.bat

set _CP=.;\classes;"%JAVA_HOME%\lib\dt.jar";"%JAVA_HOME%\lib\tools.jar"

for %%i in (lib\*.jar) do call cp.bat %%i

set CLASSPATH=%_CP%

del cp.bat

echo %CLASSPATH%

rem set JAVA_HOME=

set JAVA_OPTION=-Dfile.encoding=GBK -Xms256m -Xmx256m -XX:MaxPermSize=64m

set RUN_CLASS=batch.Main

"%JAVA_HOME%\bin\java" %JAVA_OPTION% -classpath %CLASSPATH% %RUN_CLASS%

2、-------unix/linux上shell调用java程序,shello文件内容如下---------

if [ -z ${JAVA_HOME} ]

then

echo "JAVA_HOME not set yet,can't run java program!"

exit -1

fi

CLASSPATH=.:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar

JLIBDIR=./lib

export JLIBDIR

for LL in `ls ${JLIBDIR}/*.jar`

do

CLASSPATH=${CLASSPATH}:${LL}

done

echo ${CLASSPATH}

export CLASSPATH

JAVA_OPTION="-Dfile.encoding=GBK -Xms256m -Xmx256m -XX:MaxPermSize=64m"

RUN_CLASS=batch.Main

${JAVA_HOME}/bin/java ${JAVA_OPTION} -classpath ${CLASSPATH} ${RUN_CLASS}

java编程 批处理

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.Stack;

public class CheckFilebatch {

private static final String LOG_FILE = "F:/CheckFilebatch.log"; //报错的信息写在这个文件里。

private static final String FILE_HOME = "F:/niceStore /"; //要操作的物理目录

public static void main(String[] args) {

try {

ArrayListString fileListInDB = new ArrayListString();

FileWriter fw = new FileWriter(LOG_FILE);

// TODO

// 取得DB连接,执行sql“SELECT DISTINCT FILEPATH FROM ARR-FILE”,得到一个ResultSet

// 从DB中取出文件信息,放入fileListInDB 中,

ResultSet rs = null;

while (rs.next()) {

String path = rs.getString("File_Column");

File f = new File(path);

if (!f.exists()) {

// 不合法的报出错误信息。

System.out.println("file not exists: " + path);

fw.write("file not exists: " + path + "\n");

} else {

// 合法的,转化为路径名的规范路径名字符串,加入到fileListInDB中

fileListInDB.add(f.getCanonicalPath());

}

}

rs.close();

//

fw.write("\n\n\n\n");

//下面开始遍历物理目录

File home = new File(FILE_HOME);

StackFile tmpStack = new StackFile();

tmpStack.add(home);

while (!tmpStack.isEmpty()) {

File tmp = tmpStack.pop();

File[] childs = tmp.listFiles();

for (int i = 0; i childs.length; i++) {

File child = childs[i];

if (child.isDirectory()) {

tmpStack.push(child);

} else {

if (fileListInDB.contains(child.getCanonicalPath())) {

fileListInDB.remove(child.getCanonicalPath());

} else {

// 删除文件。

child.delete();

// 这里的操作如果把它移动到另一个目录里,作为备份,更好些。

fw.write("delete file: " + child.getCanonicalPath());

}

}

}

}

// 这个程序只考虑文件,不考虑目录

fw.close();

} catch (SQLException e) {

e.printStackTrace();

} catch (IOException e1) {

e1.printStackTrace();

}

}

}


本文标题:java代码实现批处理 java批处理是什么意思
标题网址:http://kswsj.com/article/dopsgsd.html

其他资讯



Copyright © 2009-2022 www.kswsj.com 成都快上网科技有限公司 版权所有 蜀ICP备19037934号