Jak je popsáno v MySQL dokumentaci
musíte použít Connection.setCatalog()
přepnout do jiné databáze. Také výslovně říká, že byste neměli spusťte USE <databasename>
přepnout.
Důvodem tohoto varování je, že JDBC je obecné rozhraní k databázím, a proto poskytuje metody pro většinu běžných úloh, včetně přepínání catalogs
(nebo databases
jako jsou v MySQL). Specifikace JDBC/javadoc také výslovně říká, že lidé by měli používat rozhraní API přes příkazy specifické pro databázi (pokud jsou k dispozici oba). Existuje pro to několik důvodů:1) podporuje kód nezávislý na databázi a 2) ovladač může interně dělat další věci v reakci na jednu z metod API. Použití příkazů specifických pro databázi může způsobit nesprávné chování ovladače, protože jeho vnitřní stav neodpovídá stavu databáze.
Výzva na setCatalog(String)
neovlivní existující příkazy, jak je uvedeno v dokumentaci rozhraní JDBC API: