Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
DTP FAQ
This page should be a repository for all those "Frequently Asked Questions" or FAQs posted on the DTP newsgroups, mailing lists, and whatnot.
Connectivity
Q: How do I programmatically access an existing connection profile?
A: This is pretty simple:
IConnectionProfile profile = ProfileManager.getInstance().getProfileByName("myprofile");
Q: How do I connect to an existing connection profile programmatically?
A: Again, pretty simple:
IConnectionProfile profile = ProfileManager.getInstance().getProfileByName("myprofile"); IStatus status = profile.connect(); if (status.equals(IStatus.OK)) { // success } else { // failure :( if (status.getException() != null) { status.getException().printStackTrace(); } }
Q: How do I get the raw JDBC Connection from my connected connection profile?
public java.sql.Connection getJavaConnectionForProfile (IConnectionProfile profile) { IConnection connection = ProfileConnectionManager.getProfileConnectionManagerInstance().getConnection(profile,"java.sql.Connection"); if (connection != null) { return (java.sql.Connection) connection.getRawConnection(); } return null; }
Q: How do I get at the database model from my connected connection profile?
A: This is a little more difficult, but along the same lines of getting a JDBC connection. We just have a different connection type under the covers that lumps a reference to the Database model object with some other bits and pieces about the connection called "ConnectionInfo".
IManagedConnection managedConnection = ((IConnectionProfile)profile).getManagedConnection("org.eclipse.datatools.connectivity.sqm.core.connection.ConnectionInfo"); if (managedConnection != null) { try { ConnectionInfo connectionInfo = (ConnectionInfo) managedConnection.getConnection().getRawConnection(); if (connectionInfo != null) { Database database = connectionInfo.getSharedDatabase(); // do something with the database reference… this is an EMF object, so you can query for any underlying properties of the object such as // child Catalogs, Schemas, Tables, etc... Just work your way down the hierarchy } } catch (Exception e) { e.printStackTrace(); } }