SystemListener


import java.util.Timer;
import java.util.TimerTask;
import java.util.UUID;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import cn.itcast.web.dao.SystemDao;

public class SystemListener implements ServletContextListener {
	private Timer timer = new Timer();
	public void contextInitialized(ServletContextEvent sce) {
		try {
			SystemDao systemDao = new SystemDao();
			systemDao.createTable("systemInit");
			timer.schedule(new SystemTask(),0,5*1000);
		} catch (Exception e) {
		}
	}
	public void contextDestroyed(ServletContextEvent sce) {
		try {
			SystemDao systemDao = new SystemDao();
			systemDao.dropTable("systemInit");
			//中止定时器
			timer.cancel();
		} catch (Exception e) {
		}
	}
}
//任务类
class SystemTask extends TimerTask{
	public void run() {
		try {
			SystemDao systemDao = new SystemDao();
			systemDao.init("systemInit",UUID.randomUUID().toString());
		} catch (Exception e) {
		}
	}
}


*/


import java.sql.SQLException;
import org.apache.commons.dbutils.QueryRunner;
import cn.itcast.web.util.JdbcUtil;

public class SystemDao {
	//删除表
	public void dropTable(String tableName) throws SQLException{
		QueryRunner runner = new QueryRunner(JdbcUtil.getDataSource());
		String sql = "drop table if exists " + tableName;
		runner.update(sql);
	}
	
	//创建表
	public void createTable(String tableName) throws SQLException{
		QueryRunner runner = new QueryRunner(JdbcUtil.getDataSource());
		String sql = "create table if not exists "+tableName+"(id varchar(40) primary key,curr_time timestamp not null)";
		runner.update(sql);
	}
	
	//初始化数据
	public void init(String tableName,String id) throws SQLException{
		QueryRunner runner = new QueryRunner(JdbcUtil.getDataSource());
		String sql = "insert into "+tableName+"(id) values(?)";
		runner.update(sql,id);
	}
}


web.xml配置