/*
* Copyright (C) 2013 Intel Corporation
* All rights reserved.
*/
package com.intel.mtwilson.v2.rpc.jdbi;
import com.intel.mtwilson.My;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.skife.jdbi.v2.DBI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.skife.jdbi.v2.tweak.ConnectionFactory;
/**
* References:
* Validation queries: http://stackoverflow.com/questions/3668506/efficient-sql-test-query-or-validation-query-that-will-work-across-all-or-most
*
* @author jbuhacoff
*/
public class MyJdbi {
private static Logger log = LoggerFactory.getLogger(MyJdbi.class);
/*
public static <T> T openDAO(T clazz) {
DBI dbi = new DBI(getDataSource());
T dao = dbi.open(clazz.getClass());
return null;
}*/
public static RpcDAO rpc() throws SQLException {
// createTables();
DBI dbi = new DBI(new ExistingConnectionFactory());
return dbi.open(RpcDAO.class);
}
public static class ExistingConnectionFactory implements ConnectionFactory {
@Override
public Connection openConnection() throws SQLException {
try {
return My.jdbc().connection();
}
catch(Exception e) {
throw new RuntimeException(e);
}
}
}
}