sql >> Databasteknik >  >> RDS >> Mysql

JDBC PreparedStatement resulterar i MySQL-syntaxfel

I de flesta databaser kan du inte parametrisera objektnamn som tabellnamn, i MySQL kan du teoretiskt sett eftersom MySQL Connector/J som standard inte använder parametrar på serversidan, utan istället skriver den om frågan innan den skickas till servern. Men värdet kommer att infogas som en citattäng, och objektnamn kan inte vara en sträng med citattecken, så det fungerar fortfarande inte.

INSERT INTO ? eller SELECT ... FROM ? kommer inte att fungera, eftersom det producerar INSERT INTO 'theTable' eller SELECT ... FROM 'theTable' .

Objektnamnen måste vara en del av den faktiska frågan. Använd inte parametrar för dem. De flesta andra databaser (eller deras drivrutiner) skulle ha gjort ett undantag för att ha en parameter i denna position.



  1. Söker du efter NULL på en samling i JPQL-frågor?

  2. PostgreSQL VISNINGSTABELLER Motsvarande (psql)

  3. Varför denna viloläge mall bulkUpdate inte fungerar

  4. Hur man ställer in ett standardvärde för en befintlig kolumn