sql >> Databáze >  >> RDS >> Mysql

Bezpečná databázová připojení Java

Nemyslím si, že vytváření databázových připojení bezpečných pro vlákna je běžnou praxí. Obvykle to, co chcete, je:

  • Serializujte přístup k některé části vašeho servletu tak, aby kód nespouštěl více než jeden servlet současně (např. implementace SingleThreadModel rozhraní).
  • Uzamknutí konkrétní tabulky / stránky tabulky / řádku, abyste mohli pracovat s nějakou konkrétní n-ticí (změnou úrovně izolace databáze).
  • Použití optimistického zamykání k detekci upravených řádků v tabulce (pomocí nějakého referenčního atributu tabulky ke kontrole, zda je aktuální verze stejná jako ta v tabulce).

AFAIK, typické použití ThreadLocal<Connection> je uložit jedinečné databázové připojení na vlákno, takže stejné připojení lze použít v různých metodách ve vaší obchodní logice, aniž byste je museli pokaždé předávat jako parametr. Protože běžná implementace kontejneru servletů používá vlákno ke splnění požadavku HTTP, je zaručeno, že dva různé požadavky budou používat dvě různá databázová připojení.



  1. Připojení k mysql pomocí php

  2. Výčtové typy s ActiveRecord a Postgresql

  3. Proč mi použití znaku podtržítka ve filtru LIKE poskytuje všechny výsledky?

  4. break row_number() sekvence založená na proměnné příznaku