package org.teiid.adminapi.jboss; import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import org.teiid.jdbc.TeiidDataSource; @SuppressWarnings("nls") public class BaseConnection { static String user = "admin"; static String password = "teiid"; interface DataSourceFactory{ Connection getConnection(String vdbName) throws Exception; } static class ServerDatasourceConnection implements DataSourceFactory { public Connection getConnection(String vdbName) throws Exception { TeiidDataSource ds = new TeiidDataSource(); ds.setUser(user); ds.setPassword(password); ds.setServerName("localhost"); ds.setPortNumber(31000); ds.setDatabaseName(vdbName); ds.setAutoCommitTxn("DETECT"); return ds.getConnection(); } } public void execute(DataSourceFactory connF, String vdbName, String sql) throws Exception { Connection connection = connF.getConnection(vdbName); try { connection.getMetaData(); Statement statement = connection.createStatement(); boolean hasResults = statement.execute(sql); if (hasResults) { ResultSet results = statement.getResultSet(); ResultSetMetaData metadata = results.getMetaData(); int columns = metadata.getColumnCount(); while(results.next()) { for (int i = 0; i < columns; i++) { System.out.print(results.getString(i+1)); System.out.print(","); } System.out.println(""); } System.out.println("Done getting results!"); results.close(); } else { System.out.println("update count is="+statement.getUpdateCount()); } statement.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (connection != null) { connection.close(); } } } }