Usando ;
in una query per la maggior parte dei database non funziona poiché di solito non fa parte della sintassi dell'istruzione stessa, ma un terminatore per la riga di comando o l'input di script per separare le istruzioni. La riga di comando o il processore di script vede un punto e virgola come il segnale che l'istruzione è completa e può essere inviata al server.
Anche in JDBC una singola istruzione prepare (o eseguire) dovrebbe essere solo una istruzione effettiva quindi non sono consentite più istruzioni e quindi non è nemmeno necessario avere un punto e virgola e, come per alcuni (la maggior parte?) database, il punto e virgola non fa parte della sintassi dell'istruzione, è semplicemente un errore di sintassi averne uno incluso.
Se si desidera eseguire più istruzioni, è necessario utilizzare esecuzioni separate. Tecnicamente, MySQL ha un'opzione per supportare più esecuzioni che possono essere abilitate da una proprietà di connessione. Questo comportamento non è conforme alla specifica/API JDBC e rende il codice meno portabile. Vedi allowMultiQueries
su Nomi classe driver/origine dati, Sintassi URL e proprietà di configurazione per Connector/J