package xpages; import java.sql.Connection; import java.sql.SQLException; import java.util.Collections; import java.util.List; import javax.faces.context.FacesContext; import com.ibm.commons.Platform; import com.ibm.xsp.extlib.jdbc.dbhelper.DatabaseHelper; import com.ibm.xsp.extlib.util.JdbcUtil; public class DBUtil { public static final String BEAN_NAME = "dbUtil"; // Look for the managed bean public static DBUtil get() { FacesContext context = FacesContext.getCurrentInstance(); DBUtil bean = (DBUtil)context.getApplication().getVariableResolver().resolveVariable(context, BEAN_NAME); return bean; } private String connectionName; private transient DatabaseHelper helper; private transient Connection connection; public DBUtil() { this.connectionName = "derby1"; } public String getConnectionName() { return connectionName; } public Connection getConnection() throws SQLException { if(connection==null) { connection = JdbcUtil.getConnection(FacesContext.getCurrentInstance(),connectionName); } return connection; } public DatabaseHelper getHelper() throws SQLException { if(helper==null) { helper = DatabaseHelper.findHelper(getConnection()); } return helper; } public String getSchema() { return "PHIL"; } public boolean isDatabaseInitialized() throws SQLException { try { return JdbcUtil.tableExists(getConnection(), getSchema()); } catch(Exception ex) { Platform.getInstance().log(ex); return false; } } public List<String> listTables() { try { return JdbcUtil.listTables(getConnection(), getSchema(), null); } catch(Exception ex) { Platform.getInstance().log(ex); return Collections.<String>emptyList(); } } }