ThinkUI Logo
Bending Time and Space for the Lazy Developer SQL Query and Code Generation Tool for Java™ Developers About Us | Download | Register | Links | Services | Contact Us

Features

The following are all the features of the ThinkUI SQL Client. Please refer below for differences between the Professional and Community editions.
If you have a feature request or suggestion, please let us know.

Supported Platforms & Databases
Support any Java™ 1.4 or higher platform (Java 1.6 recommended, tested on Windows® 2000/XP/Vista, Linux™, and Mac OS® X)
Support for Oracle® Database, IBM® DB2®, Microsoft® SQL Server, PostgreSQL, IBM® Cloudscape™ / Apache Derby, MySQL®, HSQLDB, H2
(Using either JDBC 2.0 or JDBC 3.0)
Support for any database using JDBC 3.0 (except for SQL create table query generation)
Support for data import from flat file (Excel, CSV, and Tab delimited files supported)
Support for read only access to a database (to prevent accidental data modifications)
Support for logging output a file or console (with runtime control of logging levels for easier tracing & debugging)
Support for invoking the SQL client from a Windows native executable wrapper "thinkui_sqlclient.exe".
Support for displaying the "System Properties" (useful for diagnostic purposes).
Support for shutdown of the database (this is useful for embedded databases such as Derby and HSQLDB).
Support for uninstalling the application (i.e. remove system registry entries). See UNINSTALL.TXT for details.

Meta Data Browser, SQL Query,, Data Object List Viewer & Data Object Editor
Database meta data tree browser (schemas, tables, views, sequences, indices, constraints, triggers, procedures)
Table column meta data grid browser (column name, type, size, nullable, default, comments, etc.)
SQL query (auto generate SQL create, select, insert, update queries from table meta data)
Table data grid browser with multi column sort (any combination of ascending and descending)
Support for filtering connections, schema and tables in various viewers (based on customizable regular expressions) This is especially useful for databases like ORACLE where schema are actual database user accounts.
Support for various keyboard accelerators including Refresh ("F5"), Delete ("<Delete>"), Save ("<Ctrl> + S"), Execute Query ("<Ctrl> + <Enter>"), Close Tab ("<Ctrl> + W"), Close Window ("<Alt> + F5") etc.
Support for saving queries in the SQL Viewer on a per DB connection and table basis. The queries are saved to the "db" folder in a file named "<DB connection name> - <Table Name>.sql"
Support for table/column comments (remarks) as DataClass/Attribute "description". The "Generate SQL Create Table" command will generate the corresponding "COMMENT ON TABLE/COLUMN" statements.
Support for rendering truncated results in the DataObjectListViewer and SQLQueryViewer in distinctive colours.
Support for table and column names that requires quotes (i.e. containing mixed cases and/or spaces). The generated queries will be quoted as needed based on whether the database meta data.
Support for "Copy As" function (upper/lowercase, Java class name, identifier, constant name, etc.) and "Change Case" function (upper/lowercase) actions in the popup menu of various viewers.
Support for undo/redo in text fields, text areas, SQL query viewers, and text file viewers.
Support for enabling/disabling "Line Wrap" in Text File viewer.
Support for showing "(null)" in tool tip for null values in text components to distinguish from empty strings.
Support for copying the selected column value from the data object list viewer popup menu.
Support for count row command for tables/views as well as related data objects in Data Object Viewer.
Support for importing data from a file into a BLOB/CLOB column and exporting data from a BLOB/CLOB column to a file.
Support for editing binary data in hexadecimal (or ASCII). The value will be not editable if the value is not fully loaded (i.e. truncated).
Support for selected rows in the DataObjectListViewer and SQLQueryViewer can be "Marked" or "Unmarked". Marked rows are rendered with a distinctive highlight and provides a way to identifier objects accross multiple queries.
Support for removing (hiding) selected rows from the DataObjectListViewer and SQLQueryViewer.
Right-click menu support to zoom to related foreign key records and certain column values.
Graphical user interface for data entry of all tables (object viewer with support for apply and copy as new)
(supports edit of table rows grid as well as selected row from arbitrary SQL query with a single table).
Object viewer automatically display parent-child data with picklist and zoom to related records support.
Graphical user interface for executing stored procedures with support for displaying REF CURSOR out parameter for ORACLE stored procedure.
Data model capture and customization (import from specified database or Java code into internal database).
List all related tables (performed recursively and sorted by table dependencies using a topological sort).
Support for saving SQL queries into a local repository for later reuse. The queries can be associated with a default DB connection to allow convenient execution using the SQL query viewer. The queries are grouped under a particular Project and is limited to 1024 characters.

User Configurable Preferences
Support for specifying the various application directories (to override the installed defaults).
Support for showing/hiding "Welcome Screen" on application startup.
Support for showing/hiding the "Instructions" in the SQLQueryViewer.
Support for showing all the related data for a given table in the DataObjectViewer. The relationships are based on the Foreign Keys (FKs) for the select table and data can be loaded automatically or manually.
Support for hiding system schema (useful for hiding system schema and does not provide any useful data)
Support for saving/loading of SQL queries in the SQLQueryViewer. If enabled, the user will be prompted to save any modified queries. The saved queries will be automatically loaded when the corresponding DB connection/table is selected.
Support for specifying the maximum number of rows to retrieve. All data over the limit will be truncated.
Support for specifying the maximum number of relationships for a given table to automatically load.
Support for specifying the maximum size of clob and blob data to retrieve (i.e. allows for preview of data). If the entire blob/clob is not loaded, the clob/blob will be displayed as read only.
Support for specifying the connection login and query timeout (in seconds).
Support for specifying the default values for the various Code Generation commands.
Support for enabling/disabling the various logging level (useful for diagnostic purposes).

Code & Data Generation
Code generation of various artifacts using Velocity templates and database meta data.
Meta data retrieved from database table, view, stored procedure, imported data model, and SQL query
(supports single table/view queries as well as multi table joins).
Code generation can be perform interactively via a graphical user interface or in batch using Apache Ant and custom tasks
Custom code generation commands can be developed (for batch code generation) - see developer tutorial for details.
Existing template files can be easily customized (Javadoc available for code generation API)
Generated code can be saved to file (with full package folder path) or copied to clipboard for easy copy & paste
Template parameter values are stored as user preferences for convenient and efficient code generation
Support for generating Ant script for use with ThinkUI Data Generator. The script allows test data to be quickly generated for the selected database tables. The generator can automatically include dependent tables in the correct order (based on a topological sort of the dependency tree).

Code & Data Templates
SQL Select Statement Generates SELECT SQL query for all columns of the selected tables or views (with alias prefix)
Insert Statement Generates INSERT SQL query for all columns of the selected tables or views (with optional row data)
Update Statement Generates UPDATE SQL query for all columns of the selected tables or views (with optional row data and primary key where clause)
Create Table Statement Generates CREATE TABLE SQL query of the selected tables or views (for the targeted database)
Data Access (Data Object) Data Object Class Generates Java DataObject class(es) to encapsulates meta data of the selected tables or views (with optional get/set access methods)
Composite Object Class Generates Java CompositeObject class to encapsulates the related DataObject classes (e.g. from Foreign Key DB constraints) for the selected table or view
Search Criteria Data Class Generates Java SearchCriteriaData class to encapsulates the search parameters for the selected table or view
Data Access Object Class Generates Java DataAccessObject class for the selected table or view
Data Access (Java Bean) Java Bean Class Generates Java bean class for the selected table or view
Java Bean Search Criteria Data Class Generates Java bean SearchCriteriaData class to encapsulates the search parameters for the selected table or view
Java Bean DAO Class Generates Java bean DAO class for the selected table or view (for the targeted database). Generated code can be based on dynamically generated SQL queries or static SQL queries executed using JDBC PreparedStatements.
Java Bean Copy Code Generates Java bean copy code using the get/set access methods for the selected table or view
Java Bean Stored Procedure Generates Java bean code for executing a database stored procedure
Data Access (Hibernate) Hibernate 2.0 Java Bean Class Generates Java bean class(es) (for use with Hibernate 2.0) for the selected tables or views (with optional lifecycle stub methods)
Hibernate 2.0 Mapping XML file Generates Hibernate 2.0 Mapping XML file with support for relationships
Hibernate 3.0 Java Bean Class Generates Java bean class(es) (for use with Hibernate 3.0) for the selected tables or views (with optional lifecycle stub methods)
Hibernate 3.0 Mapping XML file Generates Hibernate 3.0 Mapping XML file with support for relationships
Data Generator Data Generator Ant Build Script Generates an Ant build script for use with the ThinkUI Data Generator for the selected tables (topologically sorted). The generated scripts can be customized as needed to match the desired data generation profile.
Business Logic Business Object Class Generates BusinessObject class for the specified project
Business Proxy Class Generates BusinessObject proxy class (Interface, Local, or EJB) for the specified project with various business methods for the selected tables or views
Command Class Generates Command class (Code Generator, Swing, Web, or Batch command) with parameters the same as the columns of the selected table or view
Web (Controller) JSPScreen Class Generates JSPScreen class (Search, View, or Select screen) for the selected table or view
Session Manager Class Generates WebSessionManager class for the specified project with various get/set access methods for the selected tables or views
Permissions Class Generates Permissions class for the specified project
Show Search Screen Command Class Generates ShowSearchScreenCommand class for the selected table or view
Multi Selection Handler Class Generates MultiSelectionHandler class for the selected table or view
Search Command Class Generates SearchCommand class for the selected table or view
Show View Screen Command Class Generates ShowViewScreenCommand class for the selected table or view
New Command Class Generates Command class to create a new object for the selected table or view
Save Command Class Generates SaveCommand class for the selected table or view
Delete Command Class Generates DeleteCommand class for the selected table or view
Web
(View)
Search JSP File Generates JSP file for searching for the selected table or view
View JSP File Generates JSP file for viewing an object for the selected table or view
Select JSP File Generates JSP file for selecting an object for the selected table or view
CSS File Generates CSS template file for the project
HTML File Generates HTML template file for the project
Desktop Data Object Viewer Class Generates Desktop Viewer class for the selected table or view
Resource List Columns Generates information for columns of the selected table or view
Attribute Properties Generates a messages.properties file for all columns of the selected tables or views
Command Properties Generates a command.properties file for mapping the standard web commands for the selected tables or views
XML File Generates an XML file for all selected data
Framework (Data Object) Audit Trail Data Class Generates Java class to encapsulate meta data for tables/views with audit trail columns
Audit Trail Data Object Generates Java base class for all DataObject classes with audit trail columns
Abstract DAO Generates Java base class for DAO classes
Framework (Java Bean) Java Bean Abstract DAO Generates Java base class for Java Bean DAO classes
Java Bean Abstract Search Criteria Data Generates Java base class for Java Bean SearchCriteriaData classes
Java Bean Search Criteria Data Generates Java interface implemented by all Java Bean SearchCriteriaData classes
Java Bean Data Not Found Exception Generates DataNotFoundException class required by generated Java Bean DAO classes
Java Bean Result Set Helper Generates ResultSetHelper class required by generated Java Bean DAO classes
Java Bean SQL Command Generates SQLCommand class required by generated Java Bean DAO classes
Java Bean SQL Statement Helper Generates SQLStatementHelper interface required by generated Java Bean DAO classes
Java Bean SQL Utilities Generates SQLUtils class required by generated Java Bean DAO classes
Java Bean Abstract Stored Procedure Generates Java base class for Java Bean Stored Procedure classes

Professional Edition

The following are features that are only available for the Professional Edition of the ThinkUI SQL Client.
Please contact us if you wish purchase a Professional Edition.

Differences between the various editions Editions
Feature Communitity Professional
Priority technical support (e.g. interim bug patches, email support, etc.) and feature request considerations N/A YES
Support for specifying custom JDBC connection properties (via db/<DB_CONNECTION.NAME>.properties file) NO YES
Support for import/export of CLOB/BLOB column data from/to files NO YES
Support for openning multiple Schema Tree Viewers (via "View" -> "Schema Tree...") NO YES
Support for accessing the SQL Client DB Schema (via "DB" -> "SQL Client DB...") NO YES
Support for annotating rows in the Data Object List Viewer (e.g. mark/highlight rows, remove rows from view, etc.) NO YES
Support for performing batch data generation with integration with the ThinkUI Data Generator NO YES
Support for copying SQL queries for used in Java code to create DAOs (via "Copy As" -> "String Expr") NO YES
Support for quickly creating Query object from the selected query in the SQL Query Viewer or importing from Java files. NO YES
Source code for batch code generation Ant task and helper classes NO YES

File: features.bhtml Last Modified: June 23, 2009