📄 helpclass.java
字号:
package com.util;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.TimerTask;
import org.apache.log4j.Logger;
import org.tiling.scheduling.SchedulerTask;
/**
* 此类于每日2点扫描用户上传文件夹 拿出所有文件与数据库中记录对比
* 数据库中无此文件便将此文件信息插入数据库
* @author liuya
*
*/
public class HelpClass extends SchedulerTask {
public Logger log = Logger.getLogger(this.getClass());
public File file = new File("C:\\workspace\\up_down_file");
public void run() {
log.info("扫描上传文件夹 插入数据库 开始 " );
fileList();
System.out.println("扫描上传文件夹 插入数据库 结束 " );
}
//返回目录文件夹下的所有文件
public void fileList(){
String[] dirdownfile = file.list();
//DataCenterBean bean = null;
for(int i=0;i< dirdownfile.length;i++){
File fileChild = new File(file.getPath()+"\\"+dirdownfile[i]);
//log.info("下载文件的子目录名 : "+dirdownfile[i]);
for(int j = 0;j<fileChild.list().length;j++){
//log.info("完整下载路径 : "+ fileChild.getPath()+"\\"+fileChild.list()[j]);
//log.info("下载文件名: "+fileChild.list()[j]);
//实例化BEAN fileName, userAreaCode, upLoadTime, desc, path, userName
//插入数据库
insertDB(fileChild.list()[j],dirdownfile[i],null,null,fileChild.getPath()+"\\"+fileChild.list()[j],"admin");
}
}
}
/**
* 插入到数据库
* liuya
* 2008-08-05
*/
public boolean insertDB(String fileName,String userAreaCode,String upLoadTime,String desc,String path,String userName) {
boolean resu = false;
Connection conn = null;
PreparedStatement psmt = null;
String sql = "MERGE INTO up_down_load up" +
" using (SELECT COUNT(*) co FROM up_down_load t" +
" WHERE t.filename=? and t.areacode=? ) temp " +
"on " +
" ( temp.co <> 0 )" +
" WHEN NOT MATCHED THEN " +
"INSERT (up.filename,up.areacode,up.path,up.uptime,up.description,up.username )" +
"VALUES (?,?,?,to_char(SYSDATE,'yyyy-mm-dd'),?,?)";
//也可把merge语句换成insert执行
// INSERT INTO up_down_load
// (up.filename, up.areacode, up.path, up.uptime, up.description, up.username)
// SELECT 'a', 'a', 'a', 'a', 'a', 'a'
// FROM dual
// WHERE NOT EXISTS (SELECT 1
// FROM up_down_load
// WHERE filename = 'a'
// AND t.areacode = 'a')
int i = 1;
try{
conn = getConnection();
//conn.setAutoCommit(false);//关闭自动提交
psmt = conn.prepareStatement(sql);
psmt.setString( i++ , fileName );
psmt.setString( i++ , userAreaCode );
psmt.setString( i++ , fileName );
psmt.setString( i++ , userAreaCode );
psmt.setString( i++ , path );
psmt.setString( i++ , desc );
psmt.setString( i++ , userName );
//log.info("HelpClass insert sql: "+sql);
psmt.execute();
resu = true;
//conn.commit();//提交
//log.info("Help isert method 扫描目录 插入数据库成功 "+resu);
}catch(SQLException e){
try{
conn.rollback();
}catch(Exception ee){
ee.printStackTrace();
}
log.info("HelpClass insert 失败: "+e.getMessage());
e.printStackTrace();
}finally{
close(conn,psmt,null);
}
return resu;
}
public Connection getConnection(){
Connection conn = null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
conn = DriverManager.getConnection(url,"sgsj","a");
}catch(Exception e){
log.info("获取数据库连接错误: "+e.getMessage());
}
return conn;
}
public void close( Connection connection, Statement statement, ResultSet resultSet ){
try{
if( resultSet != null ){
resultSet.close();
}
if( statement != null ){
statement.close();
}
if( connection != null ){
connection.close();
}
}catch( SQLException e ){
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
HelpClass hc = new HelpClass();
Thread thread = new Thread(hc);
thread.start();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -