Java >> Java tutorial >  >> Tag >> SQL

Java fælles JDBC SQL Query-strategi for Unit Test ved hjælp af HSQLDB og runtime ved hjælp af MySQL

Jeg er ved at udvikle Java Vert.x 3-applikationen. Jeg bruger HSQLDB til at teste med in-memory DB og MySQL 8.0.20 til runtime. Når vertx-vertiklen er implementeret, initialiserer den db og tabeller. Da dette er en almindelig kode, og der er forskellig SQL-syntaks mellem HSQLDB og MySQL, og mere latterligt, bruger HSQLDB alle egenskabsnavnene med store bogstaver, og jeg er nødt til at citere egenskaberne dobbelt for at bruge små bogstaver. Jeg spekulerer på, hvordan man opnår dette. Her er mine spørgsmål:

(1) HSQLDB bruger nøgleordet "IDENTITY" til at oprette databasetabellen i hukommelsen. Dette resulterer i runtime fejl i MySQL DB, da "IDENTITY" ikke er et gyldigt nøgleord. Dette udgør en udfordring, som jeg står over for nu.

(2) Hvis det ikke er muligt at have en fælles SQL-syntaks, der opfylder både MySQL og HSQLDB, hvad er den bedste tilgang til at opdele denne fælles eksekveringssti baseret på Java-applikationens runtime-profil, da denne DB-initialisering udføres i start funktion af det lodrette, som er kernen i applikationen?

Ethvert råd og indsigt er værdsat.

Svar

Løsning:Fjern HSQLDB og brug H2 med database_to_upper=false mulighed.


Java tag