定時執行商務邏輯+更新資料庫表中的時間_定時執行商務邏輯

來源:互聯網
上載者:User

知識點:學會使用時間類及時間類的時間格式間的轉換。

需求:1.線上程中每天的某個時間定時的執行商務邏輯

            2.更新資料庫表中的時間【取資料庫中的時間然後更新到表中去】


1)定時執行商務邏輯

線上程中要求每天淩晨一點或者幾點執行某項業務:
// 檢查執行建立下年度表名

int hour = this.getTiming(Calendar.HOUR_OF_DAY);if (hour == 1) { // 每天淩晨1點的時候執行//商務邏輯代碼}/** * 擷取目前時間點 年度、月份、日、時、分 *  * @return */private static int getTiming(int timeFlag) {  //添加年度  當前年度Calendar now = Calendar.getInstance();return now.get(timeFlag);}


時間的轉換類:【非常重要】

public class GetSystemDate {/** * 擷取系統目前時間(年月日) * @return */public static String getDate(){Date date = new Date();SimpleDateFormat  format = new SimpleDateFormat("yyyyMMdd");return format.format(date);}/** * 擷取系統目前時間(年-月-日) * @return */public static String getDateForTen(){Date date = new Date();SimpleDateFormat  format = new SimpleDateFormat("yyyy-MM-dd");return format.format(date);}/** * 擷取系統目前時間(年月日時分秒) * @return */public static String getTime(){Date date = new Date();SimpleDateFormat  format = new SimpleDateFormat("yyyyMMddHHmmss");return format.format(date);}/** * 擷取系統目前時間(年-月-日  時:分:秒) * @return */public static String getDateTime(){Date date = new Date();SimpleDateFormat  format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");return format.format(date);}/** * 擷取目前時間點 年度、月份、日、時、分 *  * @return */public static int getTiming(int timeFlag) { //Calendar.YEAR//添加年度  當前年度Calendar now = Calendar.getInstance();return now.get(timeFlag);}/** * 時間格式轉換(年月日時分秒) * @return */public static String getFormatTime(Timestamp timestamp){SimpleDateFormat  format = new SimpleDateFormat("yyyyMMddHHmmss");return format.format(timestamp);}}

2)更新資料庫表中的時間:取資料庫時間的語句【select sysdate ti from dual】

Timestamp timeStamp = this.baseDao.getCurrentDateTime();String timeStr = GetSystemDate.getFormatTime(timeStamp);this.baseDao.execute(UPDATE_TIME, new Object[]{timeStr});



下面是相關類和方法:

getCurrentDateTime()

/** * 取得系統(資料庫服務)時間 * @return */public Timestamp getCurrentDateTime(){return DbFeatureFactory.GetFeature().getSysTime();}
資料庫適配的類:DbFeatureFactory

public class DbFeatureFactory {private static DbFeature dbFeature = null;private static String productName = null;public static DbFeature GetFeature() {if (dbFeature == null) {if (productName == null)productName = PropertiesHander.getEVConfValue(BIZConstant.DATABASE_SERVICE).toLowerCase();if (productName.indexOf("postgre") > -1) {dbFeature = new PostgreDbFeature();} else if (productName.indexOf("oracle") > -1) {dbFeature = new OracleDbFeature();} else if (productName.indexOf("db2") > -1) {dbFeature = new DB2DbFeature();} else if (productName.indexOf("mssql") > -1) {dbFeature = new MSSQLDbFeature();} else if (productName.indexOf("mysql") > -1) {dbFeature = new MSSQLDbFeature();} else if (productName.indexOf("sybase") > -1) {dbFeature = new SybaseDbFeature();} else {// 預設為ORACLEdbFeature = new OracleDbFeature();}}return dbFeature;}}


getSysTime()方法

@Overridepublic Timestamp getSysTime() {String sql="select sysdate ti from dual";return (Timestamp)this.getJdbcTemplate().queryForObject( sql, Timestamp.class );}
         
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.