ORMLite Package
Version 4.48
December 2013
Gray Watson
This manual is licensed by Gray Watson under the Creative Commons Attribution-Share
Alike 3.0 License.
Permission is granted to make and distribute verbatim copies of this manual provided the
previous license notice and this permission notice are preserved on all copies.
i
Table of Contents
ORMLite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1 Downloading ORMLite Jar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Configuring a Class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Configuring a DAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Code Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 How to Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1 Setting Up Your Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 Adding ORMLite Annotations . . . . . . . . . . . . . . . . . . . 5
2.1.2 Using javax.persistence Annotations. . . . . . . . . . . . . 11
2.1.3 Adding a No-Argument-Constructor . . . . . . . . . . . . 13
2.2 Persisted Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Connection Sources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Setting Up the DAOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5 Supported Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6 Tying It All Together. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.7 Table and Schema Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.7.1 TableUtils Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.7.2 TableCreator Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.8 Identity Columns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.8.1 Fields With id. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.8.2 Fields With generatedId. . . . . . . . . . . . . . . . . . . . . . . . 25
2.8.3 Fields With generatedIdSequence . . . . . . . . . . . . . . . 25
2.9 DAO Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.10 Indexing Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.11 Issuing Raw SQL Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.11.1 Issuing Raw Queries . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.11.2 Issuing Raw Update Statements . . . . . . . . . . . . . . . 31
2.11.3 Issuing Raw Execute Statements . . . . . . . . . . . . . . . 31
2.12 Foreign Object Fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.13 Foreign Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.14 DAO Enabled Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
ii
3 Custom Statement Builder . . . . . . . . . . . . . . . . 37
3.1 Query Builder Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2 Building Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3 Building Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4 QueryBuilder Capabilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5 Where Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.6 Using Select Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.7 Using Column Arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.8 Building Join Queries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4 Using With Android . . . . . . . . . . . . . . . . . . . . . . 49
4.1 Android Basics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2 Using Table Config File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3 Android Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4 Runtime Versus SQL Exceptions . . . . . . . . . . . . . . . . . . . . . . . . 53
4.5 Upgrading Your Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5 Advanced Concepts . . . . . . . . . . . . . . . . . . . . . . . 55
5.1 Spring Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2 Class Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.3 Database Specific Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4 DAO Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.5 ORMLite Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.6 External Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.7 Using Database Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.8 Object Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.9 Configuring a Maven Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.10 Running Batch Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.11 Custom Data Type Persisters . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6 Upgrade From Old Versions . . . . . . . . . . . . . . . 72
6.1 Upgrade to Version 4.45 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.2 Problems With Version 4.43. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.3 Upgrade to Version 4.37 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.4 Upgrade to Version 4.30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.5 Upgrade to Version 4.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.6 Upgrade to Version 4.14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.7 Upgrade to Version 4.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.8 Upgrade to Version 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.9 Upgrade to Version 3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.10 Upgrade to Version 2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
7 Example Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7.1 JDBC Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7.2 Android Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78