package edu.harvard.i2b2.crc.loader.dao; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; import java.util.List; import javax.sql.DataSource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.jdbc.core.RowMapper; import edu.harvard.i2b2.crc.loader.datavo.loader.DataSourceLookup; public class OracleDataSourceLookupDAO extends DataSourceLookupDAO { /** log **/ protected final Log log = LogFactory.getLog(OracleDataSourceLookupDAO.class); private String schemaName = null; public OracleDataSourceLookupDAO(DataSource dataSource,String schemaName) { setDataSource(dataSource); this.schemaName = schemaName; } public List<DataSourceLookup> getDbLookupByHiveOwner(String domainId,String ownerId) { String sql = "select * from crc_db_lookup where LOWER(c_domain_id) = ? and c_project_path = ? and (LOWER(c_owner_id) = ? or c_owner_id ='@') order by c_project_path"; String projectId = "@"; List<DataSourceLookup> dataSourceLookupList = this.query(sql, new Object[]{domainId.toLowerCase(),projectId,ownerId.toLowerCase()}, new mapper()); return dataSourceLookupList; } @SuppressWarnings("unchecked") public List<DataSourceLookup> getDbLookupByHiveProjectOwner(String domainId, String projectId, String ownerId) { String sql = "select * from crc_db_lookup where LOWER(c_domain_id) = ? and c_project_path like ? and (LOWER(c_owner_id) =? or c_owner_id = '@') order by c_project_path"; List<DataSourceLookup> dataSourceLookupList = this.query(sql, new Object[]{domainId.toLowerCase(),projectId+"%",ownerId.toLowerCase()},new int[]{Types.VARCHAR,Types.VARCHAR,Types.VARCHAR},new mapper() ); return dataSourceLookupList; } public static void main(String args[]) { OracleDataSourceLookupDAO dao = new OracleDataSourceLookupDAO(null,null); } public class mapper implements RowMapper { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { DataSourceLookup dataSourceLookup = new DataSourceLookup(); dataSourceLookup.setDomainId(rs.getString("c_domain_id")); dataSourceLookup.setProjectPath(rs.getString("c_project_path")); dataSourceLookup.setOwnerId(rs.getString("c_owner_id")); dataSourceLookup.setFullSchema(rs.getString("c_db_fullschema")); dataSourceLookup.setDataSource(rs.getString("c_db_datasource")); dataSourceLookup.setServerType(rs.getString("c_db_servertype")); dataSourceLookup.setNiceName(rs.getString("c_db_nicename")); dataSourceLookup.setToolTip(rs.getString("c_db_tooltip")); dataSourceLookup.setComment(rs.getString("c_comment")); dataSourceLookup.setEntryDate(rs.getDate("c_entry_date")); dataSourceLookup.setChangeDate(rs.getDate("c_change_date")); dataSourceLookup.setStatusCd(rs.getString("c_status_cd")); return dataSourceLookup; } } }