-
Drop the com.adbs.querybuilder.QueryBuilder control on a form using a visual form designer or create an instance programmatically.
import com.adbs.querybuilder.*;
...
QueryBuilder queryBuilder1 = new QueryBuilder();
-
Add any text control on your form (for example, JTextPane). Handle its Focus event and put changed query text to the query builder.
jTextPane1.addFocusListener(new FocusAdapter()
{
public void focusLost(FocusEvent evt)
{
try
{
queryBuilder1.setSQL(jTextPane1.getText());
}
catch (QueryBuilderException ex)
{
JOptionPane.showMessageDialog(this, ex.getMessage());
}
}
});
-
Create the PlainTextSQLBuilder instance and bind it to the query builder instance.
PlainTextSQLBuilder sqlBuilder = new PlainTextSQLBuilder();
sqlBuilder.setQueryBuilder(queryBuilder1);
-
Handle SQLUpdated event of the PlainTextSQLBuilder to receive notification about query text changes.
sqlBuilder.addSQLUpdatedEventListener(new SQLUpdatedEventListener()
{
public void sqlUpdatedEventOccurred(SQLUpdatedEvent event)
{
try
{
// set the query text to a text control
jTextPane1.setText(sqlBuilder.getSQL());
}
catch (QueryBuilderException ex)
{
JOptionPane.showMessageDialog(this, ex.getMessage());
}
}
});
-
Create a metadata provider and supply it with a database connection. Set a corresponding syntax provider and call the RefreshMetadata method to load objects from the database.
try
{
JdbcMetadataProvider metadataProvider = new JdbcMetadataProvider();
Class.forName("com.mysql.jdbc.Driver");
metadataProvider.setConnection(DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password"));
MySQLSyntaxProvider syntaxProvider = new MySQLSyntaxProvider();
queryBuilder1.setSyntaxProvider(syntaxProvider);
queryBuilder1.setMetadataProvider(metadataProvider);
queryBuilder1.refreshMetadata();
}
catch (ClassNotFoundException ex)
{
JOptionPane.showMessageDialog(this, "Failed to load JDBC driver: \n" + ex.getMessage());
}
catch (Exception ex)
{
JOptionPane.showMessageDialog(this, ex.getMessage());
}
-
That's all! Now you can run your application.
Comments
0 comments
Please sign in to leave a comment.