Selamlar Bir tetikleyici veya bir dinleyici (ne olduğunu bilmiyorum) gibi bir şey yapmak istiyorum belirli bir veritabanı tablosunda dinleyecek ve bu tabloya eklenen her yeni kayıtla, bazı java kodları yapmak istiyorum Yeni bir kaydın eklendiğini algıladığını ve olası bir veriyi aldığını tespit ederse Bu işlemin nasıl gerçekleştirileceğine dair bir kılavuza ihtiyacım var? Spring-hazırda-PostgreSQLJava ile bir veritabanı dinleyicisi nasıl oluşturulur?
cevap
Bu LISTEN/NOTIFY için yaratıldı ne kullanıyorum
. Tek dezavantajı, herhangi bir bildirimin mevcut olup olmadığını görmek için veritabanını düzenli olarak sorgulayan bir çeşit arka plan iş parçacığına sahip olmanız gerekeceğidir.
Ayrıca bir başlangıç noktası
Veritabanını yoklamayın, istemcinizi yoklayın: http://jdbc.postgresql.org/documentation/publicapi/org/postgresql/PGConnection.html#getNotifications() –
@AdamGent: Tabii ki sunucuyu yoksaydınız . İstemci (PGConnection) sunucudan "herhangi bir mesaj var mı?" Diye soracaktır. –
Belki de yanlış wireshark okuyordum ama yemin ederim, şoförün onlara istediklerini bildiren bildirimleri alıyormuş gibi görünmesine yemin ederim. Postgres'in bazı asenkron destekleri eklediğini okudum ve bunun bazılarının olabileceğini düşündüm. –
Sana DB içerik hazırda kodu ile eklenir anlamına varsayalım olması Postgres Wiki gelen kodu kullanabilirsiniz.
Öyleyse, Hibernate Event Listeners'u Spring ile nasıl kuracağınız konusunda this previous answer of mine'a başvurun.
Aksi takdirde, a-horse-with-no-name's answer en iyi olmalıdır.
Kayıt olaylarını algılamak için Hazırda Bekletme yapılandırmanıza bir Interceptor ekleyebilirsiniz.
- 1. Java eylem dinleyicisi
- 2. Happstack'ta bir veritabanı Monad Stack nasıl oluşturulur?
- 3. SQLAlchemy kullanarak yeni bir veritabanı nasıl oluşturulur? Sqlalchemy ile
- 4. LibGDX Scene2D'de CheckBox için bir fare dinleyicisi nasıl düzgün oluşturulur?
- 5. MediaPlayer ile OnCompletion dinleyicisi
- 6. Meteor'da yeni bir veritabanı nasıl oluşturulur?
- 7. Java yöntemleri nasıl oluşturulur?
- 8. Kafka 0.9 - java api ile bir konu nasıl oluşturulur
- 9. Hibernate kullanarak veritabanı tablosundan gerçek zamanlı bir varlık nasıl oluşturulur
- 10. Bir Java sınıfının JSON temsili nasıl oluşturulur?
- 11. Symfony2 ile Doktrin OracleSessionInit dinleyicisi nasıl kullanılır?
- 12. Java Listesinden bir SQL dizisi nasıl oluşturulur?
- 13. Temel bir Java Sunucusu nasıl oluşturulur?
- 14. mysql kullanarak localhost veritabanı nasıl oluşturulur?
- 15. Bir Olay Dinleyicisi Ekleme
- 16. Herhangi bir veri eklemeden mongodb veritabanı koleksiyonu nasıl oluşturulur?
- 17. Harici bir SQL veritabanı nasıl oluşturulur - iPhone uygulaması
- 18. olay dinleyicisi pencereden ayarlanmış bir olay dinleyicisi kaldırmak gerekir
- 19. Neden bir anahtar dinleyicisi ekleyemiyorum?
- 20. Bir eylem dinleyicisi, iki JButtons
- 21. İçerik dinleyicisi aracılığıyla olay dinleyicisi kaldırılamıyor
- 22. Veritabanı ile tam veritabanı oluşturma
- 23. Java için iyi bir veritabanı günlüğü ekleyicisi?
- 24. Java 8: Bir Epoch değerinden bir ZonedDateTime nasıl oluşturulur?
- 25. Görüntüde dokunma dinleyicisi nasıl uygulanır?
- 26. FireMonkey ile bir Tray simgesi nasıl oluşturulur?
- 27. ViewBag ile bir BaseController nasıl oluşturulur
- 28. TipScript ile bir uygulama nasıl oluşturulur?
- 29. OGRE ile bir .mesh dosyası nasıl oluşturulur?
- 30. Mootools ile yüzen bir div nasıl oluşturulur?
Sanırım tüm yorumları okuduktan sonra kendi çözümümüzü uygulayacağım. JMS'yi her durumda kullanacağım, böylece bir istemci veritabanını JMS gönderimi yoluyla güncellediğinde, verilerin değiştiği tüm istemcilere bir JMS mesajı göndereceğim. Tetikleyicileri olduğu gibi bunu yapmanın tek garantili yolu gibi görünüyor Bir kabus ve Oylama korkunç bir çözümdür. – JPM