
Features
Writing SQL
- Syntax highlighting
- Code completion for tables, fields and keywords and operations
- Spell and error checking for tables, fields and keywords
- Refactoring participation of tables and fields, through the whole codebase (single source)
- On the fly spell checking and error highlighting
- easy navigation to tables and fields
- directly visible foreign key relations
- deprecate tables and columns
Keywords by now
- select, from, where, group by, having, order by
- numeric, boolean, list expressions
- Value, Prepared Statement, NamedParameterJdbcTemplate parameters
- raw sql possible
- min, max, avg, count
- not, and, or
- !=,=,<,<=,>,>=, like, between
- is null, is not null
- subselect, in, exists
- +,-,*,/
- aliases (table,field,expressions)
Use - Execution
- Support for Prepared Statements, Springs NamedParameterJdbcTemplate
- supply default parameters typesafe within statement
- fluent language for statement execution
- additional POJO or Method param based RowHandlers/Mappers SpringExtensions
- Rendering to SQL 92 (TODO: Formatters for different target languages)
Build Process
- Generate Java source file for schema meta data (tables, fields, relations,comments) from target database schema
- Enhance Schema Metadata with Documentation from resourcebundles, glossaries, database comment columns, analyse table relationships
- Code that does not comply with the generated Java code will not compile (database changes will appear as build errors)
- Ant task for generation and enhancement
- Single and Multi-File Schema generation
Reuse
- keep often used sql fragments (whole selects or combinations of from, where, ...) in named and documented java classes
- extract variable, method or constant refactorings for reused sql parts
Testing
- write unit tests for SQL fragments
- provide test parameters and expected results for fragments
Documentation
- Quick documentation lookup for alle tables and fields when writing statements (^Q in IDEA)
- Generate Javadoc from Schema Meta Data File(s)
- Find (all) usages of tables and fields within the codebase using your IDE (shift+ctrl+g in eclipse and alt-f7 in idea)
- deprecate tables and columns
- use descriptive table and column names that are mapped to (inflexible?) existing database schema