Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Kwalifikowanie tymczasowej nazwy kolumny tabeli w jOOQ

Istnieją dwa sposoby na dynamiczną interakcję z tabelami/kolumnami (tj. bez użycia generatora kodu) w jOOQ:

Korzystanie ze zwykłego SQL (org.jooq.SQL )

To właśnie robisz. Oczywiście możesz zakwalifikować kolumny bezpośrednio w swoim zwykłym Field SQL referencje na dwa sposoby:

Powtarzając "tmp" ciąg w każdym polu:

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

Osadzając "tmp" odniesienie w zwykłym szablonie SQL:

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);

Funkcja zwykłego SQL jest udokumentowana tutaj w podręczniku

Korzystanie z kwalifikowanych referencji (org.jooq.Name )

To jest prawdopodobnie to, co chcesz robić zamiast tego. Napiszesz:

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);

Funkcja nazewnictwa jest opisana w tym podręczniku .

Zaletami tego podejścia są:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można użyć opisu nazwy kolumny w mysql

  2. PHP:aktualizacja duplikacji zapytań MySQL bez powodu

  3. Eksportuj i importuj wszystkie bazy danych MySQL jednocześnie

  4. Odmowa polecenia aktualizacji dla użytkownika

  5. LAST_DAY() Przykłady – MySQL