Detailliertes Beispiel für das Datenbankbetriebsobjektmodell in Spring jdbc Objektivierung von Spring JDBC-Datenbankoperationen Verwenden Sie objektorientierte Methoden, um relationale Datenbankoperationen darzustellen und ein threadsicheres und wiederverwendbares Objektmodell zu implementieren. Die übergeordnete Klassenschnittstelle der obersten Ebene ist RdbmsOperation. SqlOperation erbt diese Schnittstelle, um Datenbankoperationen wie Auswählen, Aktualisieren und Aufrufen zu implementieren. 1. Abfrageschnittstelle: SqlQuery 1) Generische SQL-Abfrage, aktualisierbare SQL-Abfrage, MappingSQL-Abfrage mit Parameter 2) SqlUpdate, BatchSqlUpdate 3) SQL-Aufruf 1) Kapseln Sie die Datenbankoperation „select“ als Objekt. Die Basisklasse der Abfrageoperation ist SqlQuery. Alle Abfragen können durch diese Klasse dargestellt werden. Spring JDBC bietet auch einige einfacher zu verwendende MappingSqlQueryWithParameters und MappingSqlQuery zum Zuordnen von Ergebnismengen zu Java-Objekten. Die Abfrageobjektklasse bietet außerdem zwei Erweiterungen: UpdatableSqlQuery und SqlFunction. 2) Hinzufügen, Löschen und Ändern von Operationen, kapseln Sie die Datenbankoperationen Einfügen, Aktualisieren und Löschen als Objekte. Die Basisklasse für Hinzufügen, Löschen und Ändern von Operationen ist SqlUpdate. Natürlich wird auch BatchSqlUpdate für die Stapelverarbeitung bereitgestellt. 3) Gespeicherte Prozeduren und Funktionsaufrufe werden als Objekte gekapselt. Die Basisklasse ist die SqlCall-Klasse, die eine StoredProcedure-Implementierung bereitstellt. Datenbankverbindung JDBC: Spring jdbc steuert die Datenbankverbindung über DataSource, das heißt, sie wird über ihre Implementierungsunterklasse abgerufen. 1) DriverManagerDataSource: Einfache Kapselung von DriverManager.getConnection() 2) SingleConnectionDataSource: kapselt eine Verbindung intern, wird nicht geschlossen und kann nicht von mehreren Threads verwendet werden, dient zum Testen 3) LazyConnectionDataSourceProxy: Kapselt DataSource und wird verwendet, um den Erwerb von Datenbankverbindungen zu verzögern. Die Verbindung wird nur dann erlangt, wenn tatsächlich eine Anweisung erstellt wird. Daher wird in tatsächlichen Projekten der Proxy schließlich verwendet, um die ursprüngliche DataSource zu umhüllen, sodass die Verbindung nur dann erlangt wird, wenn sie wirklich benötigt wird. Verkäufer: Die bereitgestellten DataSource-Implementierungen umfassen hauptsächlich C3P0/Proxool/DBCP/ usw. Diese Implementierungen verfügen alle über Datenbankverbindungspoolfunktionen. DataSourceUtils: Das abstrakte Spring JDBC-Framework erhält Datenbankverbindungen über seine Methode getConnection(DataSource dataSource), releaseConnection(Connection con, DataSource dataSource) wird zum Freigeben von Datenbankverbindungen verwendet und DataSourceUtils wird zum Unterstützen von Spring-verwalteten Transaktionen verwendet. Nur Verbindungen, die mit DataSourceUtils erhalten wurden, verfügen über Spring-verwaltete Transaktionen. Spring JDBC bietet konsistenten Datenbankzugriff über die abstrakte Klasse DaoSupport. 1) JdbcDaoSupport: unterstützt konsistenten JdbcTemplate-Zugriff 2) NamedParameterJdbcDaoSupport: Eine Unterklasse von JdbcDaoSupport, die Zugriff auf NamedParameterJdbcTemplate bietet 3) SimpleJdbcDaoSupport: JdbcDaoSupport-Unterklasse, die Zugriff auf SimpleJdbcTemplate bietet Da die Klassen JdbcTemplate, NamedParameterJdbcTemplate und SimpleJdbcTemplate DataSourceUtils zum Abrufen und Freigeben von Verbindungen verwenden und die Verbindungen an Threads gebunden sind, sind diese JDBC-Vorlagenklassen threadsicher, d. h. JdbcTemplate-Objekte können in mehreren Threads wiederverwendet werden. Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht oder kommen Sie zur Diskussion in die Community. Vielen Dank fürs Lesen und ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung dieser Site! Das könnte Sie auch interessieren:
|
<<: So erstellen Sie eine Swap-Partitionsdatei in Linux
>>: Implementierung der Parametersprungfunktion im Vue-Projekt
01. Befehlsübersicht Der Befehl tr kann Zeichen a...
Inhaltsverzeichnis Finden Sie das Problem 1. So e...
Schließung Dienst Nginx stoppen systemctl stoppt ...
Inhaltsverzeichnis 1. Erste SQL-Vorbereitung 2. M...
Artikelstruktur 1. Vorbereitung 2. Installieren S...
1. Linklayout der neuen Site-Startseite 1. Die Pos...
Die Online-Suche zum Ändern der Grub-Startzeit be...
In diesem Artikel wird das MySQL 5.7.18 MSI-Insta...
Frage: <input type="hidden" name=&qu...
JBoss verwendet Tomcat als Webcontainer. Die Konf...
Routenplanung vue-router4 behält den Großteil der...
Welches dieser Formate (GIF, PNG oder JPG) sollte...
Formularelemente dynamisch hinzufügen Das dynamis...
Um Als ich kürzlich Vue lernte, schrieb ich ein k...
Normalerweise wählt ein CSS-Selektor von oben nac...