⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 helpclass.java

📁 java 实现定时任务 完整可直接可用的代码 及 说明 自己写的
💻 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 + -