package com.dev.lock.history; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import com.dev.lock.data.ElectLock_Inf; import com.dev.lock.data.ElectLock_RecordState; import com.dev.lock.data.ElectLock_Report; import com.sql.MysqlConnPool; import com.sql.Sql_Mysql; public class InsertDataToMysql_Task implements Runnable{ private ElectLock_Inf m_lock_rt = null; private MysqlConnPool m_Conn_Pool; public InsertDataToMysql_Task() { } public InsertDataToMysql_Task(ElectLock_Inf rt_dat, MysqlConnPool pool) { m_lock_rt = rt_dat; m_Conn_Pool = pool; } @Override public void run() { Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn()); try { inserTestDataToDB(sql); } catch (Exception e) { sql.logger.error(e.toString(), e); } finally { sql.close_con(); m_lock_rt.clearStoreDataBusyTag(); } } private void inserTestDataToDB(Sql_Mysql sql_v) { boolean result = true; for(int c=0; c<3; c++) { try { sql_v.mysql_con.setAutoCommit(false); //--------------------------------------------------------------// if(m_lock_rt.lockRecordState.lock_state == ElectLock_RecordState.Lock_State_Open) { //当前为开锁事件 m_lock_rt.lockReport.calNewOpenEvent(m_lock_rt.lockRecordState.record_time); String sql_str = InsertDataToMysql_Task_SQL.getInsertLock_Report_TableDataStr(m_lock_rt.getLock_id(),m_lock_rt.lockReport); sql_v.sqlMysqlExecute(sql_str); } String sql_str = InsertDataToMysql_Task_SQL.getInsertLock_His_TableDataStr(m_lock_rt.getLock_id(), m_lock_rt.lockRecordState); //------------------------------------------------------------// sql_v.sqlMysqlExecute(sql_str); //------------------------------------------------------------// sql_v.mysql_con.commit(); } catch (SQLException e) { try { sql_v.mysql_con.rollback(); } catch (SQLException e1) { sql_v.logger.error("InsertDataToMysql_Task.inserTestDataToDB():" + e1.toString(), e1); } sql_v.logger.error("InsertDataToMysql_Task.-inserTestDataToDB():" + e.toString(), e); result = false; } finally { if(true == result) { m_lock_rt.lockRecordState.RecordHisOK(); break; } else { try { Thread.sleep(1000); } catch (Exception e) { sql_v.logger.error("InsertDataToMysql_Task.inserTestDataToDB():" + e.toString(), e); } } } } } }