/*******************************************************************************
* Copyright (c) 2017 hangum.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v2.1
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Contributors:
* hangum - initial API and implementation
******************************************************************************/
package com.hangum.tadpole.engine.query.sql;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import org.apache.log4j.Logger;
import com.hangum.tadpole.commons.exception.TadpoleSQLManagerException;
import com.hangum.tadpole.engine.initialize.TadpoleSystemInitializer;
import com.hangum.tadpole.engine.manager.TadpoleSQLManager;
import com.hangum.tadpole.engine.query.dao.gateway.ExtensionDBDAO;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapSession;
/**
* 외부 확장시스템
*
* @author hangum
*
*/
public class TadpoleSystem_ExtensionDB {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(TadpoleSystem_ExtensionDB.class);
/**
* get extension info
*
* @param searchKey
* @return
* @throws Exception
*/
public static List<ExtensionDBDAO> getExtensionInfo(String searchKey) throws Exception {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
return sqlClient.queryForList("findExtensionDB", searchKey); //$NON-NLS-1$
}
/**
* 접근이 허락된 디비 리스트를 가져온다.
*
* @param userID
* @return
* @throws Exception
*/
public static List<ExtensionDBDAO> getUserDBs(String userId) throws Exception {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
return sqlClient.queryForList("getExtensionUserDBs", userId); //$NON-NLS-1$
}
/**
* delete extension
*
* @throws TadpoleSQLManagerException
* @throws SQLException
*/
public static void deleteExtensionDB() throws TadpoleSQLManagerException, SQLException {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
sqlClient.delete("deleteExtensionDB"); //$NON-NLS-1$
}
/**
* insertExtension data
*
* @param listExtensionDB
* @throws TadpoleSQLManagerException, SQLException
*/
public static void insertExtensionDB(List<ExtensionDBDAO> listExtensionDB) throws TadpoleSQLManagerException, SQLException {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
Connection connection = sqlClient.getDataSource().getConnection();
connection.setAutoCommit(false);
SqlMapSession session = sqlClient.openSession(connection);
if(logger.isDebugEnabled()) logger.debug(" deleted before gateway data");
try {
session.delete("deleteExtensionDB"); //$NON-NLS-1$
for (ExtensionDBDAO extensionDBDAO : listExtensionDB) {
session.insert("saveExtensionDB", extensionDBDAO); //$NON-NLS-1$
}
connection.commit();
} catch(Exception sqle) {
logger.error("extension db list", sqle);
connection.rollback();
throw new SQLException(sqle.getMessage());
} finally {
try { if(session != null) session.close(); } catch(Exception e) {}
try { if(connection != null) connection.close(); } catch(Exception e) {}
}
}
}