sql >> Database >  >> RDS >> Mysql

Kwalificeren van een tijdelijke tabelkolomnaam in jOOQ

Er zijn twee manieren om dynamisch te interageren met tabellen/kolommen (d.w.z. zonder de codegenerator te gebruiken) in jOOQ:

Gewone SQL gebruiken (org.jooq.SQL )

Dat is wat je doet. U kunt de kolommen uiteraard direct in uw gewone SQL Field kwalificeren referenties op twee manieren:

Door de "tmp" . te herhalen tekenreeks in elk veld:

Table<Record> TMP = DSL.table("tmp");
Field<String> TYPE = DSL.field("tmp.type", String.class);
Field<String> TOKEN = DSL.field("tmp.token", String.class);

Door de "tmp" . in te sluiten verwijzing in de gewone SQL-sjabloon:

Table<Record> TMP = DSL.table("tmp");
Field<String> TYPE = DSL.field("{0}.type", String.class, TMP);
Field<String> TOKEN = DSL.field("{0}.token", String.class, TMP);

De gewone SQL-functionaliteit wordt hier in de handleiding beschreven

Gekwalificeerde referenties gebruiken (org.jooq.Name )

Dat is waarschijnlijk wat je in plaats daarvan wilt doen. Je schrijft:

Table<Record> TMP = DSL.table(DSL.name("tmp"));
Field<String> TYPE = DSL.field(DSL.name("tmp", "type"), String.class);
Field<String> TOKEN = DSL.field(DSL.name("tmp", "token"), String.class);

De naamgevingsfunctionaliteit wordt hier beschreven in de handleiding .

De voordelen van deze aanpak zijn:




  1. HTML opslaan in MySQL-database

  2. PDO IN() Array-instructie EN een tijdelijke aanduiding

  3. Dapper gebruiken met Oracle-opgeslagen procedures die cursors retourneren

  4. Vergelijk twee MySQL-databases