package gov.nih.ncgc.bard.resourcemgr; import gov.nih.ncgc.bard.capextract.CAPUtil; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; public class BardDBUpdateLogger { public static long logStart(String eventType) { long logId = -1; try { Timestamp now = new Timestamp(System.currentTimeMillis()); Connection conn = CAPUtil.connectToBARD(); PreparedStatement ps = conn.prepareStatement("insert into update_history_log (start_time, event) values (?,?)", PreparedStatement.RETURN_GENERATED_KEYS); ps.setTimestamp(1, now); ps.setString(2, eventType); boolean inserted = ps.execute(); ResultSet rs = ps.getGeneratedKeys(); if(rs.next()) { System.out.println("have a last insert result"); logId = rs.getInt(1); } conn.close(); } catch (SQLException e) { e.printStackTrace(); return -1; } return logId; } public static long logEnd(long logId, int status, String eventComment) { try { Timestamp now = new Timestamp(System.currentTimeMillis()); Connection conn = CAPUtil.connectToBARD(); PreparedStatement ps = conn.prepareStatement("update update_history_log set end_time = ?, status = ?, event_comment=? where log_id=?"); ps.setTimestamp(1, now); ps.setInt(2, status); ps.setString(3, eventComment); ps.setLong(4, logId); int inserted = ps.executeUpdate(); if(inserted==0) return -1; conn.close(); } catch (SQLException e) { e.printStackTrace(); return -1; } return logId; } public static long logStart(String eventType, String dbURL) { long logId = -1; try { Timestamp now = new Timestamp(System.currentTimeMillis()); Connection conn = CAPUtil.connectToBARD(dbURL); PreparedStatement ps = conn.prepareStatement("insert into update_history_log (start_time, event) values (?,?)", PreparedStatement.RETURN_GENERATED_KEYS); ps.setTimestamp(1, now); ps.setString(2, eventType); boolean inserted = ps.execute(); ResultSet rs = ps.getGeneratedKeys(); if(rs.next()) { System.out.println("have a last insert result"); logId = rs.getInt(1); } conn.commit(); conn.close(); } catch (SQLException e) { e.printStackTrace(); return -1; } return logId; } public static long logEnd(long logId, int status, String eventComment, String dbURL) { try { Timestamp now = new Timestamp(System.currentTimeMillis()); Connection conn = CAPUtil.connectToBARD(dbURL); PreparedStatement ps = conn.prepareStatement("update update_history_log set end_time = ?, status = ?, event_comment=? where log_id=?"); ps.setTimestamp(1, now); ps.setInt(2, status); ps.setString(3, eventComment); ps.setLong(4, logId); int inserted = ps.executeUpdate(); if(inserted == 0) return -1; conn.commit(); conn.close(); } catch (SQLException e) { e.printStackTrace(); return -1; } return logId; } public static void main(String [] args) { long dbLogId = BardDBUpdateLogger.logStart("TEST_COMPOUND_UPDATE_START_LOG"); System.out.println("dbLogId="+dbLogId); try { Thread.sleep(10000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } BardDBUpdateLogger.logEnd(dbLogId, 1, "load logger is working!"); } }