Symqle guide

Alexander Izyurov


Table of Contents

Introduction
1. Building and executing statements
SelectStatement and DataChangeStatement structure
Statement execution
Engine construction
Auto-determination of dialect
Setting dialect explicitly
Statement generation and execution options
Supported dialects
Exceptions during statement execution
MalformedStatementException
SQLException
2. Building SELECT clause
Java types and database types
Value expressions
Column
Dynamic parameter
System functions
Arithmetic expressions
String expressions
Built-in functions
Defining functions
Subqueries as value expressions
Aggregate functions
Case expressions
Boolean expressions as values
Selecting complex objects
Select
SmartSelect
Collections
Pairs
All or distinct
Map: change type parameter
Cast
3. Building WHERE clause
Predicates
Comparison predicates
Like predicates
IN predicate
Subquery predicates
Qualified comparisons
Value expressions as boolean
Boolean expressions
Binary operations
Unary operations
4. FROM clause
Table scopes
Joins
Automatic joins
No tables in the scope
Implicit cross joins
5. SelectStatement
Set operations
union
except
intersect
ORDER BY
Sort specifications
Labels
Offset and limit
FOR UPDATE and FOR READ ONLY
6. Executing SelectStatement
List
Scroll
7. Data change statements
Update
Insert
Generated keys
Delete
Execution of data change statements
8. Symqle model
Generating model
Using samples
Auto joins
Enhancing model
9. Transactions
Transactional DataSource
Spring transactions
10. Increasing performance
Batching
Pre-compiled statements
11. Tips and tricks
Dynamic programming
Derived tables
Code reuse by subclassing
Map-like structure
12. Benchmarks
13. Troubleshooting
14. Under the hood

List of Tables

1.1. Supported databases
1.2. Unsupported databases
12.1. Insert, milliseconds per row
12.2. Fetch, milliseconds per row