Detailliertes Beispiel für das Datenbankbetriebsobjektmodell in Spring jdbc

Detailliertes Beispiel für das Datenbankbetriebsobjektmodell in Spring jdbc

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 installieren und führen Sie das Python-Plugin in IntelliJ IDEA aus
  • Intellij IDEA-Installation und Verwendung des Lombok-Plug-Ins
  • Verwendung des IntelliJ IDEA Hot Deployment-Plugins JRebel
  • Empfehlen Sie ein Key Promoter X-Plugin für IntelliJ IDEA, um Tastenkombinationen aufzurufen
  • Ein unverzichtbares Intellij IDEA-Plugin für Java-Programmierer
  • Grafisches Tutorial zur Installation und Verwendung von IntelliJ IDEA JRebel (Hot Deployment-Plug-in)
  • Erste Schritte mit der Intellij IDEA-Plugin-Entwicklung
  • Entwicklung des Intellij Idea-Plugins: Erstellen eines Rechtsklickmenüs auf Projektebene
  • Verwenden Sie das Spring Initializr-Plugin in IntelliJ IDEA 2017.2.5 x64, um schnell ein Spring Boot/Cloud-Projekt zu erstellen (Abbildung)
  • Detaillierte Beschreibung der Installation und Verwendung des IntelliJ IDEA-Plugins (Abbildung)
  • So installieren Sie das Vue-Entwicklungs-Plugin in IntelliJ IDEA
  • Detaillierte Erklärung zur Verwendung des .ignore-Plugins in IntelliJ IDEA, um unnötig übermittelte Dateien zu ignorieren
  • Intellij IDEA-Konfiguration - Schritte zur Implementierung des Subversion-Plugins - Detaillierte Erläuterung
  • Praktischer Beispielcode für Datenbankoperationen von Spring Boot
  • Grafisches Tutorial zur Verwendung der Springboot-Datenbank
  • Beispiel für eine Spring Boot Mysql-Datenbankoperation
  • Detaillierte Methode zur Verwendung des IntelliJ IDEA-Plugins EasyCode zum Generieren von Code mit einem Klick in Spring Boot

<<:  So erstellen Sie eine Swap-Partitionsdatei in Linux

>>:  Implementierung der Parametersprungfunktion im Vue-Projekt

Artikel empfehlen

So verwenden Sie den Linux-Befehl tr

01. Befehlsübersicht Der Befehl tr kann Zeichen a...

Lösung für viele Zeilenumbrüche und Wagenrückläufe in MySQL-Daten

Inhaltsverzeichnis Finden Sie das Problem 1. So e...

So fahren Sie nginx herunter/starten es neu

Schließung Dienst Nginx stoppen systemctl stoppt ...

So zeigen Sie die Ausführungszeit von SQL-Anweisungen in MySQL an

Inhaltsverzeichnis 1. Erste SQL-Vorbereitung 2. M...

Installations-JDK-Tutorialanalyse für Linux-System (Centos6.5 und höher)

Artikelstruktur 1. Vorbereitung 2. Installieren S...

Wissen zur Suchmaschinenoptimierung, auf das Sie beim Webdesign achten sollten

1. Linklayout der neuen Site-Startseite 1. Die Pos...

Ändern Sie die Startzeit von Grub in Ubuntu

Die Online-Suche zum Ändern der Grub-Startzeit be...

MySQL 5.7.18 MSI-Installations-Grafik-Tutorial

In diesem Artikel wird das MySQL 5.7.18 MSI-Insta...

IE6-Verzerrungsproblem

Frage: <input type="hidden" name=&qu...

Connector-Konfiguration in Tomcat

JBoss verwendet Tomcat als Webcontainer. Die Konf...

Ein einfaches Beispiel für die Verwendung von Vue3-Routing VueRouter4

Routenplanung vue-router4 behält den Großteil der...

So wählen und verwenden Sie PNG, JPG und GIF als Web-Bildformate

Welches dieser Formate (GIF, PNG oder JPG) sollte...