tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
14
ZUGRIFFE
622
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    Hi,

    ich habe eine Liste in der ich Instanzen drin stehen habe.
    Jetzt möchte ich schnellst möglich die Attribute der Instanzen in eine MySQl Datenbank schreiben. Leider habe ich nur eine Möglichkeit gefunden, in der ich jede Instanz aufrufen und jedes Attribut dann einen String Befehl zuweisen muss. Grade das mit der String Konvertierung, es handelt sich ja immerhin um Zahlen, scheint mir sehr ineffizent zu sein.
    Gibt es eine bessere Methode?
    Vieleicht das ich die Liste per .net direkt an die DB schieben kann?
     

  2. #2
    Avatar von RudolfG
    RudolfG RudolfG ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    Gummersbach (NRW)
    Beiträge
    337
    Hi FJK,

    vielleicht zeigst du uns erstmal die Variante die du gefunden hast (als Quelltext) und vielleicht kann es ja dann auch anders gemacht werden.

    Gruß
    RudolfG
     
    Technologien
    (Gute) Grundkenntnisse: HTML, CSS
    Fortgeschrittene-Kenntnisse: C++/Qt, C# (WinForms, Webservice), SQL

  3. #3
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    Ich benutze derzeit das hier:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    public void InsertRow(string myConnectionString) 
    {
        // If the connection string is empty, use a default.
        if(myConnectionString == "") 
        {
            myConnectionString = "Database=Test;Data Source=localhost;
                                  User Id=username;Password=pass";
        }
     
        MySqlConnection myConnection = new MySqlConnection(myConnectionString);
        string myInsertQuery = "INSERT INTO Orders (id, customerId, amount) 
                                Values(1001, 23, 30.66)";
        MySqlCommand myCommand = new MySqlCommand(myInsertQuery);
        myCommand.Connection = myConnection;
        myConnection.Open();
        myCommand.ExecuteNonQuery();
        myCommand.Connection.Close();
    }
    dies habe ich hier gefunden.

    Was auch noch intressant zu wissen wäre, ob man die Verbindung für jeden Zugriff beenden und neu aufbauen muss?
    Datenbanken scheinen mir nicht sehr Zeitoptimiert zu sein. Schön wäre ja mit Zeigern direkt in der Datenbank zu arbeiten
     

  4. #4
    Avatar von RudolfG
    RudolfG RudolfG ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    Gummersbach (NRW)
    Beiträge
    337
    Zitat Zitat von FJK Beitrag anzeigen
    Ich benutze derzeit das hier:

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    public void InsertRow(string myConnectionString) 
    {
        // If the connection string is empty, use a default.
        if(myConnectionString == "") 
        {
            myConnectionString = "Database=Test;Data Source=localhost;
                                  User Id=username;Password=pass";
        }
     
        MySqlConnection myConnection = new MySqlConnection(myConnectionString);
        string myInsertQuery = "INSERT INTO Orders (id, customerId, amount) 
                                Values(1001, 23, 30.66)";
        MySqlCommand myCommand = new MySqlCommand(myInsertQuery);
        myCommand.Connection = myConnection;
        myConnection.Open();
        myCommand.ExecuteNonQuery();
        myCommand.Connection.Close();
    }
    dies habe ich hier gefunden.
    Ich hätte es wie folgt gemacht:
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    public void InsertRow(string myConnectionString)
    {
        // If the connection string is empty, use a default.
        if(myConnectionString == "") 
        {
            myConnectionString = "Database=Test;Data Source=localhost;
                                  User Id=username;Password=pass";
        }
     
       using (MySqlConnection myConnection = new MySqlConnection(myConnectionString))
       {
          MySqlCommand command = myConnection.CreateCommand();
          command.CommandText = "insert into orders(id, customerid, amaount) values(?id, ?customer_id, ?amount);"
          conn.Open();
     
          // Das Statement wird auf dem Server schon vorkompiliert
          command.Prepare();
         
          // Hier werden die Parameter hinzufügt
          command.Parameters.AddWithValue("id", 1001);
          command.Parameters.AddWithValue("customer_id", 23);
          command.Parameters.AddWithValue("amount", 30.66);
     
          // Hier muss der Server nur noch die Parameter mit dem vorkompilierten Statement ergänzen und ausführen i. d. R. ist es schneller (besonders bei komplexen Statements!
          command.ExecuteNonQuery();
       } // Das Objekt wird zerstört und die Verbindung an den Pool zurückgegeben! 
    }



    Zitat Zitat von FJK Beitrag anzeigen
    Was auch noch intressant zu wissen wäre, ob man die Verbindung für jeden Zugriff beenden und neu aufbauen muss?
    Muss man nicht, aber das wird soviel ich weiß dringend empfohlen. Dabei bedient sich der Connector dem Pooling-Verfahren, so dass wenn du die Verbindung aufbaust eine Verbindung aus dem Pool genommen wird.

    Zitat Zitat von FJK Beitrag anzeigen
    Datenbanken scheinen mir nicht sehr Zeitoptimiert zu sein. Schön wäre ja mit Zeigern direkt in der Datenbank zu arbeiten
    Datenbanken sind eigentlich so ziemlich die langsamste Komponente bei der Softwareentwicklung (die Code ausführung, Dateien selber schreiben, Netzwerkoperationen etc. gehen schneller!) aber trotzdem setzen es alle ein.

    Warum? Der Grund liegt hier darin, dass die Daten sehr strukturiert abgelegt sind und über eine standatisierte Sprache (SQL) abgefragt werden können. Außerdem laufen diese seehr stabil. Sicher bieten diese noch viel mehr Vorteile aber wie du schon selber bemerkt hast auch eben einpaar Nachteile. Trotz allem sind die Datenbanken mehr optimiert als man die Suchroutinen selber schreiben könnte, da hier die letzten Performance-Killer rausgekitzelt werden.

    Zeiger auf Datenbanken?! (Kommst du aus der C/C++-Welt?) Sowas habe ich noch nie gehört... Da das ein extrem mächtiges aber auch sehr gefährliches Werkzeug währe, würde keiner die Gewährleistung übernehmen können und wollen, das die Datenbank nach deinen eigenen Operationen nicht komplett zerstört währe.

    Gruß
    RudolfG
     
    Technologien
    (Gute) Grundkenntnisse: HTML, CSS
    Fortgeschrittene-Kenntnisse: C++/Qt, C# (WinForms, Webservice), SQL

  5. #5
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    hi,
    danke für eure antworten

    Zitat Zitat von RudolfG Beitrag anzeigen
    Ich hätte es wie folgt gemacht:
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    public void InsertRow(string myConnectionString)
    {
        // If the connection string is empty, use a default.
        if(myConnectionString == "") 
        {
            myConnectionString = "Database=Test;Data Source=localhost;
                                  User Id=username;Password=pass";
        }
     
       using (MySqlConnection myConnection = new MySqlConnection(myConnectionString))
       {
          MySqlCommand command = myConnection.CreateCommand();
          command.CommandText = "insert into orders(id, customerid, amaount) values(?id, ?customer_id, ?amount);"
          conn.Open();
     
          // Das Statement wird auf dem Server schon vorkompiliert
          command.Prepare();
         
          // Hier werden die Parameter hinzufügt
          command.Parameters.AddWithValue("id", 1001);
          command.Parameters.AddWithValue("customer_id", 23);
          command.Parameters.AddWithValue("amount", 30.66);
     
          // Hier muss der Server nur noch die Parameter mit dem vorkompilierten Statement ergänzen und ausführen i. d. R. ist es schneller (besonders bei komplexen Statements!
          command.ExecuteNonQuery();
       } // Das Objekt wird zerstört und die Verbindung an den Pool zurückgegeben! 
    }
    geht das auch für den Update Befehl?
    ist aber immer noch ziemlich string lastig.

    Zitat Zitat von RudolfG Beitrag anzeigen
    Muss man nicht, aber das wird soviel ich weiß dringend empfohlen. Dabei bedient sich der Connector dem Pooling-Verfahren, so dass wenn du die Verbindung aufbaust eine Verbindung aus dem Pool genommen wird.
    auch wenn viele Datensätze hinter ein ander hinein geschrieben werden sollen?

    Zitat Zitat von RudolfG Beitrag anzeigen

    Datenbanken sind eigentlich so ziemlich die langsamste Komponente bei der Softwareentwicklung (die Code ausführung, Dateien selber schreiben, Netzwerkoperationen etc. gehen schneller!) aber trotzdem setzen es alle ein.
    das klingt so falsch in deiner Aussage?


    Zitat Zitat von RudolfG Beitrag anzeigen
    Zeiger auf Datenbanken?! (Kommst du aus der C/C++-Welt?) Sowas habe ich noch nie gehört... Da das ein extrem mächtiges aber auch sehr gefährliches Werkzeug währe, würde keiner die Gewährleistung übernehmen können und wollen, das die Datenbank nach deinen eigenen Operationen nicht komplett zerstört währe.
    jup

    Zitat Zitat von RudolfG Beitrag anzeigen
    Gruß
    RudolfG
    gruß
    Geändert von FJK (19.02.11 um 16:42 Uhr)
     

  6. #6
    Avatar von RudolfG
    RudolfG RudolfG ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    Gummersbach (NRW)
    Beiträge
    337
    Zitat Zitat von FJK Beitrag anzeigen
    geht das auch für den Update Befehl?
    ist aber immer noch ziemlich string lastig.
    Ja das gilt für alle Statements und Sry aber anderes kann ich leider nicht bieten.


    Zitat Zitat von FJK Beitrag anzeigen
    auch wenn viele Datensätze hinter ein ander hinein geschrieben werden sollen?
    Wenn man z. B. mehrere Daten in eine Tabelle einfügen möchte sollte man es nicht so machen.

    Beispiel:

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    public void InsertRow(string myConnectionString)
    {
        // If the connection string is empty, use a default.
        if(myConnectionString == "") 
        {
            myConnectionString = "Database=Test;Data Source=localhost;
                                  User Id=username;Password=pass";
        }
     
       using (MySqlConnection myConnection = new MySqlConnection(myConnectionString))
       {
          MySqlCommand command = myConnection.CreateCommand();
          command.CommandText = "insert into orders(id, customerid, amaount) values(?id, ?customer_id, ?amount);"
          conn.Open();
     
          // Das Statement wird auf dem Server schon vorkompiliert
          command.Prepare();
     
         for (int i = 0; i < 100; ++i)
         {
             double d = i * 1.23;
     
             // Hier werden die Parameter hinzufügt
             command.Parameters.AddWithValue("id", 1001);
             command.Parameters.AddWithValue("customer_id", 23);
             command.Parameters.AddWithValue("amount", d);
     
             // Hier muss der Server nur noch die Parameter mit dem vorkompilierten Statement ergänzen und ausführen i. d. R. ist es schneller (besonders bei komplexen Statements!
             command.ExecuteNonQuery();
             command.Parameters.Clear();
          }
       } // Das Objekt wird zerstört und die Verbindung an den Pool zurückgegeben! 
    }

    Bei mehreren einfüge Operationen kann ja das vorkompilierte Statement vom Server übernommen werden, anstatt es immer wieder neu zu kompilieren. Hier müssen nur die Parameter neu gesetzt und das Statement ausgeführt werden.


    Zitat Zitat von FJK Beitrag anzeigen
    das klingt so falsch in deiner Aussage?
    Sry aber ich verstehe nicht ganz was du mir damit sagen möchtest. Stimmt das nicht? Wenn nicht dann bitte ich um eine Begründung, da ich es zumindest immer so gelernt habe.

    Zitat Zitat von FJK Beitrag anzeigen
    jup
    Wie du in meiner Signatur sehen kannst, programmiere ich auch C++ und ich weiß, das sonst keiner das Wort "Zeiger" in den Mund nimmt.

    Gruß
    RudolfG
     
    Technologien
    (Gute) Grundkenntnisse: HTML, CSS
    Fortgeschrittene-Kenntnisse: C++/Qt, C# (WinForms, Webservice), SQL

  7. #7
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    Zitat Zitat von RudolfG Beitrag anzeigen
    Sry aber ich verstehe nicht ganz was du mir damit sagen möchtest. Stimmt das nicht? Wenn nicht dann bitte ich um eine Begründung, da ich es zumindest immer so gelernt habe.
    ich meine damit:
    Das sich deine Ausage so anhört, als sei es verkehrt wenn man eine DB benutzt, weil sie eben so verdammt langsam ist.

    Zitat Zitat von RudolfG Beitrag anzeigen
    Wie du in meiner Signatur sehen kannst, programmiere ich auch C++ und ich weiß, das sonst keiner das Wort "Zeiger" in den Mund nimmt.

    Gruß
    RudolfG
    zeiger sind toll, aber auch gefährlich.
    trotzdem vermisse ich sie
     

  8. #8
    Avatar von RudolfG
    RudolfG RudolfG ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    Gummersbach (NRW)
    Beiträge
    337
    Zitat Zitat von FJK Beitrag anzeigen
    ich meine damit:
    Das sich deine Ausage so anhört, als sei es verkehrt wenn man eine DB benutzt, weil sie eben so verdammt langsam ist.
    Nein überhaupt nicht, ich benutze diese auch überall wo es nur sinnvoll ist und ich mehr als einpaar Datensätze ablegen muss. Die Datenbanken bieten eine extrem gute und leichte Art die Daten abzulegen/abzufragen. Können von fast allen Programmiersprachen verarbeitet werden und der Server kümmert sich um sehr viele "Kleinigkeiten" bei denen man sich sonst die Finger wund Programmieren würde. Dieser Vorteil hat auch einen Nachteil und das ist nun mal die Performance, diese Bewegt sich aber meistens für den Anwender im nicht spürbaren Bereich.

    Solltest du mal Millionen von Datensätze suchen und ausgeben müssen, wird das Statement aber schon ein wenig dauern. Hier kann man aber mit bestimmten Tools (Profiler) die SQL-Statements oder den SQL-Server so weit optimieren (z. B. bestimmte Spalten zu indexieren etc.), dass die Anfragen trotzdem sehr schnell verarbeitet werden können (hier werden natürlich entsprechende Kenntnisse vom System und der Technik dahinter vorausgesetzt!).

    Zitat Zitat von FJK Beitrag anzeigen
    zeiger sind toll, aber auch gefährlich.
    trotzdem vermisse ich sie
    Da sind wir einer Meinung
     
    Technologien
    (Gute) Grundkenntnisse: HTML, CSS
    Fortgeschrittene-Kenntnisse: C++/Qt, C# (WinForms, Webservice), SQL

  9. #9
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    Zitat Zitat von RudolfG Beitrag anzeigen
    Wenn man z. B. mehrere Daten in eine Tabelle einfügen möchte sollte man es nicht so machen.

    Beispiel:

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    public void InsertRow(string myConnectionString)
    {
        // If the connection string is empty, use a default.
        if(myConnectionString == "") 
        {
            myConnectionString = "Database=Test;Data Source=localhost;
                                  User Id=username;Password=pass";
        }
     
       using (MySqlConnection myConnection = new MySqlConnection(myConnectionString))
       {
          MySqlCommand command = myConnection.CreateCommand();
          command.CommandText = "insert into orders(id, customerid, amaount) values(?id, ?customer_id, ?amount);"
          conn.Open();
     
          // Das Statement wird auf dem Server schon vorkompiliert
          command.Prepare();
     
         for (int i = 0; i < 100; ++i)
         {
             double d = i * 1.23;
     
             // Hier werden die Parameter hinzufügt
             command.Parameters.AddWithValue("id", 1001);
             command.Parameters.AddWithValue("customer_id", 23);
             command.Parameters.AddWithValue("amount", d);
     
             // Hier muss der Server nur noch die Parameter mit dem vorkompilierten Statement ergänzen und ausführen i. d. R. ist es schneller (besonders bei komplexen Statements!
             command.ExecuteNonQuery();
             command.Parameters.Clear();
          }
       } // Das Objekt wird zerstört und die Verbindung an den Pool zurückgegeben! 
    }
    nochmal eine frage, wie sieht das Statement den für ein UPDATE Befehl aus?
    wie wird da die WHERE Bedingung übergeben?

    und ist es evt sogar schneller die gesamte DB zu löschen und mit INSERT neu zu befüllen, als alle Datensätze mit UPDATE zu bearbeiten?
     

  10. #10
    Avatar von RudolfG
    RudolfG RudolfG ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    Gummersbach (NRW)
    Beiträge
    337
    Zitat Zitat von FJK Beitrag anzeigen
    nochmal eine frage, wie sieht das Statement den für ein UPDATE Befehl aus?
    wie wird da die WHERE Bedingung übergeben?
    Eigentlich genau wie beim dem Insert, aber hier mal das Beispiel mit Update.


    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    public void UpdateRow(string myConnectionString)
    {
        // If the connection string is empty, use a default.
        if(myConnectionString == "") 
        {
            myConnectionString = "Database=Test;Data Source=localhost;
                                  User Id=username;Password=pass";
        }
     
       using (MySqlConnection myConnection = new MySqlConnection(myConnectionString))
       {
          MySqlCommand command = myConnection.CreateCommand();
          command.CommandText = "update orders set amount = ?amount where id = ?id;"
          conn.Open();
     
          // Das Statement wird auf dem Server schon vorkompiliert
          command.Prepare();
     
         for (int i = 0; i < 100; ++i)
         {
             double d = i * 1.23;
     
             // Hier werden die Parameter hinzufügt
             command.Parameters.AddWithValue("amount", d);
             command.Parameters.AddWithValue("id", 1000 +  i + 1);
     
             // Hier muss der Server nur noch die Parameter mit dem vorkompilierten Statement ergänzen und ausführen i. d. R. ist es schneller (besonders bei komplexen Statements!
             command.ExecuteNonQuery();
             command.Parameters.Clear();
          }
       } // Das Objekt wird zerstört und die Verbindung an den Pool zurückgegeben! 
    }

    Zitat Zitat von FJK Beitrag anzeigen
    und ist es evt sogar schneller die gesamte DB zu löschen und mit INSERT neu zu befüllen, als alle Datensätze mit UPDATE zu bearbeiten?
    Das kann man meistens nicht machen, da eine Datenbank mehrere Tabellen mit Beziehungen unter einander (mittels Foreign Keys) besitzt. Diese vorher alle Auszulesen/zu Verwalten und dann alle in die neue Datenbank zu schreiben dürfte noch um einiges Länger dauern wie, das Update. Des Weiteren ist das Risiko, dass da irgendwas bei schief läuft unverhältnismäßig hoch.

    DAS würde ich auf keinen Fall machen.

    Normalerweise muss man nicht alle Datensätze einer Tabelle, geschweige einer Datenbank, ändern, sondern eben nur bestimmte gefilterte Datensätze. Wenn du mal in einer Tabelle für alle Datensätze bestimmte Spalten auf den gleichen Wert setzen musst macht man es ohne die Where-Anweisung. (Wenn es nicht mal ganz konkrete/spezielle Gründe dafür gibt, deutet diese Vorgehensweise oft auf eine fehlerhaft Designte-Datenbank hin!)

    Gruß
    RudolfG
     
    Technologien
    (Gute) Grundkenntnisse: HTML, CSS
    Fortgeschrittene-Kenntnisse: C++/Qt, C# (WinForms, Webservice), SQL

  11. #11
    tequila slammer tequila slammer ist offline Mitglied Gold
    Registriert seit
    Aug 2006
    Beiträge
    204
    Was passiert, wenn der ConnectioNString aus einem Leerzeichen " " besteht?
    Dann ist läuft das Programm auf einen Fehler. Besser ist es mit String.IsNullOrEmpty(myString) zu prüfen.

    Zudem ist die Schleife fehlerhaft, da die Parameter "amount" und "id" nicht wieder entfernt werden. Somit wird ein Fehler nach dem ersten Durchlauf geworfen werden, dass die Parameter schon vorhanden sind.
    Geändert von tequila slammer (01.03.11 um 14:52 Uhr)
     

  12. #12
    Avatar von RudolfG
    RudolfG RudolfG ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    Gummersbach (NRW)
    Beiträge
    337
    Zitat Zitat von tequila slammer Beitrag anzeigen
    Was passiert, wenn der ConnectioNString aus einem Leerzeichen " " besteht? Dann ist läuft das Programm auf einen Fehler. Besser ist es mit String.IsNullOrEmpty(myString) zu prüfen.
    Da hast du natürlich Recht das sollte man so machen, ich habe das hier nicht gemacht, da ich die Verbindung zur DB und das setzen der Parameters erklären wollte!

    Zitat Zitat von tequila slammer Beitrag anzeigen
    Zudem ist die Schleife fehlerhaft, da die Parameter "amount" und "id" nicht wieder entfernt werden. Somit wird ein Fehler nach dem ersten Durchlauf geworfen werden, dass die Parameter schon vorhanden sind.
    Echt? Soviel ich weiß werden die Parameter durch die letzte Zeile in der Schleife entfernt (zumindest funktionieren bei mir so, an sehr vielen Quelltext-Stellen).

    Code csharp:
    1
    2
    3
    
    ...
             command.Parameters.Clear();
    ...

    Gruß
    RudolfG
     
    Technologien
    (Gute) Grundkenntnisse: HTML, CSS
    Fortgeschrittene-Kenntnisse: C++/Qt, C# (WinForms, Webservice), SQL

  13. #13
    tequila slammer tequila slammer ist offline Mitglied Gold
    Registriert seit
    Aug 2006
    Beiträge
    204
    Oh das clear habe ich übersehen. Trotzdem sollte gerade bei Beispielen noch größere Sorgfalt auf den Code gelegt werden, da Anfänger diese gerne immer wieder via Copy & Past weiterverwenden. Und man kann in der Regel nicht davon ausgehen, dass sie sich die Mühe machen zu verstehen was da passiert, wenn es erst einmal funktioniert.
     

  14. #14
    Avatar von VScan
    VScan VScan ist offline Mitglied Gold
    Registriert seit
    Dec 2008
    Ort
    Munich
    Beiträge
    131
    Hey,

    bezog sich Die Frage vom ersten Post nicht auf ORM ?

    -> http://de.wikipedia.org/wiki/Object-Relational_Mapping

    -> http://de.wikipedia.org/wiki/Hibernate_%28Framework%29

    Also wenn man Objekte speichern möchte, sollte man sich mit Hibernate beschäftigen, aber ich glaube nicht, dass hier die Effizienz gesteigert wird wenn ich mir vorstelle, dass man die Dinger erstma' serialisieren muss, aber ich hab noch keine ORDB benutzt, deswegen kann ich nix zur Performance sagen.


    MfG
     
    „Jeder Fehler erscheint unglaublich dumm, wenn Andere ihn begehen.“
    Georg Christoph Lichtenberg

    Netiquette (vA §15)
    Codetags/Codeboxen
    Sehr gut gelöste Beiträge bitte mit einem "Danke" abschließen, danke :D

  15. #15
    tequila slammer tequila slammer ist offline Mitglied Gold
    Registriert seit
    Aug 2006
    Beiträge
    204
    Schwer zu sagen was mit Instanzen gemeint ist. Er möchte ja auch wissen ob er es direkt in die DB schieben kann. Und dann passt die Antwort.

    Für .Net gibt es mittlerweile einige OR Mapper. Z.B.: nHibernate oder aber das Entity Framework von Microsoft nur um mal zwei zu nennen.
     

Ähnliche Themen

  1. Irc listen
    Von azubi2 im Forum .NET Web und Kommunikation
    Antworten: 3
    Letzter Beitrag: 25.10.05, 09:49
  2. Individuelle Listen
    Von Philipp_Frank im Forum PHP
    Antworten: 5
    Letzter Beitrag: 07.06.05, 20:21
  3. DLL Listen- Absturz, Listen übergeben
    Von haemmer im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 05.02.04, 21:00
  4. listen in c++?
    Von mts im Forum C/C++
    Antworten: 13
    Letzter Beitrag: 09.07.03, 19:04