C# Beispiel Datenbank-Wrapper Klasse

DenSe

Cadet 3rd Year
Registriert
Okt. 2016
Beiträge
35
Hallo liebe Base'ler,

ich habe von einem Kollegen erzählt bekommen, dass ich für mein Projekt doch besser eine Datenbank-Wrapper Klasse schreiben soll.
Ich googele danach jetzt schon 3 Wochen und habe kein konkretes Code-Beispiel gefunden, wie eine solche Klasse aussehen könnte.
Darum meine Frage hier, hat jemand Erfahrung mit DB-Wrapper Klassen und hätte ein Code-Beispiel. Was ist der Unterschied zu einer normalen Klasse mit Eigenschaften, Instanzmethoden, Klassenmethoden und Konstruktoren?

Vielen Dank für eure Hilfe,

und schöne Grüße

DenSe :D

P.S. Antworten in VB werden auch akzeptiert!
 
Google kaputt? Allein wenn ich "Datenbank-Wrapper Klasse" dort eingebe werden alle deine Fragen beantwortet inkl. Code-Schnipsel ... auf der 1 Seite der Suchergebnisse.
Klingt ansonsten sehr nach Hausaufgaben *hust* ;)
 
naja, am besten halt 'ne klasse, die alle von dir benoetigten datenbankzugriffe vom restlichen code abkapselt.
 
nein es sind keine Hausaufgaben. Ist ein Azubi-Projekt für das ich verantwortlich bin. Das Problem ist, dass die Code-Beispiele, die ich immer finde entwerder in Java oder PHP sind. In Java habe ich Grundkenntnisse aber PHP habe ich noch nie gemacht und verstehe daher leider nicht so ganz was da steht :/

Edit: Frage: Wenn ich einen Befehl habe, der sich nennt: "Reader = Command.ExecuteReader();", ist das eine Wrapper-Klasse, die ich eingebunden habe?
 
Zuletzt bearbeitet:
Verwendest du einen OR-Mapper? Oder plain ADO.NET?

Wie schon geschrieben sollte eine "Wrapper"-Klasse eigentlich nur den "technischen" Code zur Datenbankinteraktion von deiner restlichen Anwendung kapseln. Meistens realisiert, indem dieser "Wrapper" nach außen relativ simple Methoden bereit stellt (Bsp: GetEntityById, GetAllEntitiesX) und innen diese Anweisungen unter Verwendung der jeweils gewählten Verbindungstechnologie umsetzt.

Was du auch mal googeln kannst wären Stichworte wie "Repository Pattern" und "Service Design Pattern".

Mfg,

Saphirim
 
Du hast halt ne klasse die deine Datenbankzugriffe verwaltet. Aus anderen Klassen rufst du diese Methoden dann nur auf.
Somit trennst du deine CRUD Methoden vom restlichen Appspezifischen Code.

Wenn du aber so wenig vom Code verstehst, dass du dir alles komplett zusammengooglen willst, wuerde ich dir raten erstmal weiter Grundlagen zu lernen. Ansonsten faehrst du damit gegen die Wand.

In "3 Wochen googlen" haettest du es 10x geschafft das selber zu schreiben, anstatt fertigen Code kopieren zu wollen.

Damit wir eventuell weiter helfen koennen, waere es gut wenn du deine app hier mal grob skizzierst.
 
Also meine Suche nach "database wrapper c#" bringt auf der ersten Seite schon diverse Beispiele, wobei es nicht "DEN" Wrapper gibt.

Die Frage ist ja immer was willst Du erreichen willst. Ein Basiswrapper ersetzt Dir Produkspezifsche SQL Aufrufe durch generische, was im .NET Framework auch schon über die Vererbung in Teilen erreicht wird. Gibt auch genug Standard Frameworks dafür.

Das wiederum kannst Du in applikationsspezifische Klassen wrappen mit Methoden wie z.B. GetUser, wenn Du die Datenbank mal tauschst, musst Du nur die Schicht neu schreiben und nicht Deinen Business Code.

Hängt auch davon ab, wie Du Deine Objekte speichern und laden willst, gibt ja auch Patterns, wo die Objekte sich selbst speichern (Active Record).

Wie gesagt, es gibt nicht "DEN" Wrapper, da spielt auch die Architektur Deiner Applikation eine Rolle.
 
Zuletzt bearbeitet:
Wenn du die Wrapper-Klassen nicht selbst programmieren willst, kannst du diese auch von einem ORM-Mapper automatisch generieren lassen.
In C# gibt es z.B. das Entity-Framework.
2 Ansätze sind damit möglich:
Code First und Database first.
Bei Code First schreibst du die Wrapper Klassen und lässt die Datenbank daraus automatsich generieren.
Bei database first lässt du die Wrapper Klassen aus der Datenbank generieren.
Mittels der Wrapper Klassen kannst du objektorientiert auf deine Datenbank zugreifen, ohne dir Gedanken um SQL-Statements machen zu müssen.
 

Ähnliche Themen

Antworten
1
Aufrufe
870
R
Zurück
Oben