Mysql
 sql >> база данни >  >> RDS >> Mysql

Безопасни връзки към бази данни с Java нишка

Не мисля, че правенето на връзки с бази данни безопасни за нишки е обичайна практика. Обикновено това, което искате е:

  • Сериализирайте достъпа до част от вашия сървлет, така че да няма повече от един изпълняващ код на сървлет наведнъж (напр. прилагане на SingleThreadModel интерфейс).
  • Заключване на определена таблица/страница/ред на таблица, така че да можете да работите с конкретен кортеж (чрез промяна на нивото на изолация на базата данни).
  • Използване на оптимистично заключване за откриване на модифицирани редове в таблица (използване на някакъв референтен атрибут на таблицата, за да се провери дали текущата версия е същата като тази в таблицата).

AFAIK, типичното използване на ThreadLocal<Connection> е да съхранявате уникална връзка към база данни за нишка, така че една и съща връзка да може да се използва в различни методи във вашата бизнес логика, без да е необходимо да я предавате като параметър всеки път. Тъй като изпълнението на общия контейнер на сървлет използва нишка за изпълнение на HTTP заявка, тогава две различни заявки са гарантирани, че използват две различни връзки към база данни.



  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 клауза where

  2. initiale mysql с помощта на Windows API функция CreateProcessA

  3. MySQL няма да стартира

  4. SQL - Дайте ми 3 посещения само за всеки тип

  5. MySQL:Уникално ограничение за множество полета