Record
) plutôt que des objetsSQLDialect
, comme Hibernatemerge
/ insert ... on duplicate key update
limit ... offset
/ rownum
nvl
/ ifnull
Personne p=PERSONNE.as("p");
select(p.ID, p.NOM,p.PRENOM)
.from(p)
.where(p.NOM.like("Q%"));
select p.ID, p.NOM, p.PRENOM
from PERSONNE as p
where p.NOM like 'Q%'
<T1, T2> SelectSelectStep<Record2<T1, T2>>
select(Field<T1> field1, Field<T2> field2)
PersonneRecord personne = jooq
.selectFrom(PERSONNE)
.where(PERSONNE.ID.eq(id)).fetchOne();
personne.setPrenom("John");
personne.store();
StringBuilder
en mieuxUpdatableRecord
Tables
, Keys
, Sequences
, Routines
...Record
DAO
*POJO
*DSL
et sous classes: génération du SQL (fonctions...)DSLContext
: DSL
+ ConnectionProvider
, exécution du SQLString
Record
s jusqu'au degré 22@Column
JPARecordMapper<R extends Record, E extends Object>
List
,Map
ou TableauDSLContext
dans les DAO
sDataSource
dans un TransactionAwareDataSourceProxy
Exception
sForeign Key
( ≠ lazy-loading)Map
ou un TableauDynaBean
possibleOpen Source | Commerciales |
---|---|
Apache Derby, CUBRID, Firebird, H2, Hypersonic, MariaDB, MySQL, PostgreSQL, SQLite | IBM DB2, Ingres, MS Access, MS SQL Server, Oracle, Sybase Adaptive Server, Sybase SQL Anywhere, |
Annotation @Support
sur le DSL
Initial commit | Oct. 2009 |
V 1.0.0 | Aout 2010 |
V 2.0.0 | Nov. 2011 |
V 3.0.0 | Avril 2013 |
V 3.2.0 | Oct. 2013 Licence commerciale |
V 3.4.0 | Juin 2014 |
Open Source | ASL | pour BDD open-source |
---|---|---|
Express | 100€/an/dev | pour BDD express (prototypage) |
Pro | 400/an/dev | pour BDD commerciales, code source et support inclus |
Enterprise | 800/an/dev |
WITH
) et récursivitéHibernate | jOOQ | MyBatis | |
---|---|---|---|
CRUD | *** | *** | * |
Batch | ** | *** | * |
Dialectes | X | X | |
Relation | *** | * | ** |
Caching | X | X | |
Communauté | *** | * | ** |
Extensions | Envers, Validation, Spatial | Migrations |
Hibernate | jOOQ | MyBatis | |
---|---|---|---|
Couverture SQL | * | ** | *** |
DBA friendly | * | ** | *** |
Ingrédients | 33% Java, 33% Annotation, 33% JPQL |
100% Java | 50% Java, 50% XML |
Code Gen. | Criteria | Obligatoire | CRUD |
Plugin IDE | JPQL | Obligatoire | |
Open-source | 100% | 50% | 100% |