Zur Zeit wechsle ich meine Java-Webanwendung von JDBC zu Hibernate, in meiner aktuellen Implementierung mit JDBC lade ich statische Daten bei der Initialisierung der Anwendung in statische Variablen, so dass ich nicht jedes Mal direkt auf die Datenbank zugreifen muss einige statische Daten, die jetzt in den Ruhezustand wechseln Ich denke daran, diese statischen Variablen loszuwerden, soweit ich den Hibernate-Speicher erforscht habe, speichert er die geladenen Daten in einem Cache.
Ich bin ziemlich neu im Winterschlaf, daher bin ich mir nicht sicher, ob der Wechsel von meiner aktuellen Methode in den Ruhezustand zu Leistungsverbesserungen führt. Ich werde weiter in Hibernate Caching und einige Leistungstests erforschen, um zu sehen, welche Methode besser ist, würde aber gerne einige Meinungen darüber, was andere hinsichtlich der Leistung auf beiden Methoden denken.
Danke.
JDBC bietet den meisten Datenbankanbietern immer eine bessere Leistung als Hibernate. Sie können den Vergleich überprüfen, wie im unten stehenden Link angegeben. Er kommt zu dem Schluss, dass Hibernate schnell ist, wenn Tabellen mit weniger Zeilen abgefragt werden, sonst ist jdbc viel besser.
Die Wahl des Ruhezustands über jdbc- und sql-Abfragen ist nicht auf die Leistung zurückzuführen, sondern hauptsächlich auf Objektpersistenz und Datenbankunabhängigkeit, da keine datenbankspezifischen Abfragen geschrieben werden. Sie können pdf-Führer lesen, um eine bessere Ansicht zu erhalten.
Für Ihre spezielle Situation würde ich empfehlen, ein eigenes Objekt zu erstellen, das die benötigten statischen Werte beibehält. Sie können sie während der Initialisierung Ihrer Anwendung oder wenn diese Daten zum ersten Mal angefordert werden, auffüllen.
Was die Vergleichsperformance anbelangt, ist Ihr Bestfall, dass Ihre Hibernate-basierte Datenzugriffsebene genauso gut wie JDBC sein würde, oder die Leistungsbeeinträchtigung die gesamte Benutzererfahrung nicht beeinträchtigen würde. Hibernate wird verwendet, um die Entwicklung zu beschleunigen und die Wartbarkeit zu verbessern, und nicht um einen Leistungsvorteil gegenüber JDBC zu erzielen.