Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Bezpieczne wątkowo połączenia z bazą danych w języku Java

Nie sądzę, że tworzenie połączeń z bazą danych bezpiecznych dla wątków jest powszechną praktyką. Zwykle chcesz:

  • Serializować dostęp do jakiejś części serwletu, aby nie więcej niż jeden serwlet wykonywał kod na raz (np. implementacja SingleThreadModel interfejs).
  • Zablokowanie określonej tabeli / strony tabeli / wiersza, aby można było operować na określonej krotce (poprzez zmianę poziomu izolacji bazy danych).
  • Używając optymistycznego blokowania do wykrywania zmodyfikowanych wierszy w tabeli (używając jakiegoś atrybutu referencyjnego tabeli, aby sprawdzić, czy bieżąca wersja jest taka sama jak ta w tabeli).

AFAIK, typowe użycie ThreadLocal<Connection> jest przechowywanie unikalnego połączenia z bazą danych na wątek, dzięki czemu to samo połączenie może być używane w różnych metodach w logice biznesowej bez konieczności przekazywania go za każdym razem jako parametru. Ponieważ wspólna implementacja kontenera serwletów wykorzystuje wątek do realizacji żądania HTTP, dwa różne żądania mają gwarancję wykorzystania dwóch różnych połączeń z bazą danych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql Popraw wydajność wyszukiwania za pomocą symboli wieloznacznych (%%)

  2. MySQL JOIN Multiple Tables With LIMIT Last Table By DateTime na wynik

  3. Czy możliwe jest wykonanie ciągu w MySQL?

  4. Pełne łączenie MySql (unia) i porządkowanie w wielu kolumnach dat

  5. Projekt relacyjnej bazy danych (MySQL)