cari

Rumah  >  Soal Jawab  >  teks badan

Apabila memanggil Spring Boot REST API beberapa kali menggunakan sambungan JDBC yang sama

<p>Saya mempunyai perkhidmatan web REST yang ditulis dalam Java/Spring Boot, berjalan pada Tomcat 9. </p> <p>Saya perlu mencipta jadual sementara MySQL dalam satu panggilan perkhidmatan web dan mengaksesnya dalam panggilan perkhidmatan yang lain. Memandangkan jadual sementara adalah skop sambungan, saya perlu menggunakan sambungan yang sama yang saya gunakan semasa membuat jadual dalam panggilan pertama dan dalam pertanyaan "pilih" dalam panggilan kedua. </p> <p>Masalahnya ialah Tomcat menguruskan sambungan JDBC dalam kumpulan sambungan. Dalam panggilan perkhidmatan kedua, tidak kira berapa banyak sambungan JDBC yang saya buat, saya boleh memilih mana-mana satu sambungan daripada kumpulan sambungan. Dalam kes ini, jadual sementara tidak akan kelihatan. </p> <p>Soalan saya ialah: Bagaimanakah saya boleh memilih sambungan yang sama daripada kumpulan sambungan? Adakah terdapat sebarang jenis logo/label yang membezakannya? </p>
P粉769045426P粉769045426461 hari yang lalu575

membalas semua(1)saya akan balas

  • P粉277464743

    P粉2774647432023-08-28 08:17:05

    Walaupun anda boleh memastikan sambungan "sama" digunakan pada permintaan berikutnya, ini tidak akan membantu kerana sebahagian daripada memperuntukkan sambungan daripada kumpulan melibatkan menetapkan semula perkara yang berkaitan dengan keadaan sesi.

    Ini adalah dengan reka bentuk dan perkara yang baik kerana jika tidak, anda boleh membocorkan data peribadi dari satu sesi pangkalan data ke sesi lain yang tidak berkaitan. Sebagai contoh, ini akan menjadi masalah jika seorang pengguna menyimpan beberapa data sensitif dalam jadual sementara dan kemudian sesi pangkalan data pengguna lain boleh membaca jadual sementara itu. Perkara yang sama berlaku untuk transaksi tertunggak, pembolehubah sesi dan set aksara sambungan. Semua ini ditetapkan semula apabila sambungan diperuntukkan daripada kolam.

    Jadi jika anda menggunakan jadual sementara, anda hanya perlu menggunakannya semasa permintaan yang sama kerana ia akan dipadamkan selepas sambungan digunakan.

    Jika anda perlu menggunakan data daripada permintaan sebelumnya dalam permintaan seterusnya, anda boleh:

    • Simpan data dalam jadual bukan sementara.
    • Simpan data dalam cache.
    • Tulis perkhidmatan latar belakang Java untuk memproses data supaya anda boleh membuat dan menggunakan jadual sementara di luar permintaan. Ini lebih berkesan dan mungkin terlalu rumit untuk aplikasi web yang ringkas, tetapi dalam sesetengah perkhidmatan ini adalah penyelesaian yang optimum.

    balas
    0
  • Batalbalas