Avatar billede DalleJava Nybegynder
03. august 2009 - 10:13 Der er 7 kommentarer og
1 løsning

Fra objekt til db og tilbage igen

Mit spørgsmål går på hvordan jeg kan hente data fra min DB og ikke få det tilbage i en samlet STRING.

Jeg laver nogle objekter lige nu, som jeg gemmer i en liste.
Her kan jeg hente dem frem og tilbage, samt redigere i dem.
Hvert objekt har nogle variabler der bliver vist i felter.


Men jeg vil hellere bruge en DB. Og dette er fordi at jeg skal kunne søge på en masse forskellige ting.

Jeg kan godt ligge mine objekter ind i DB.
Men når jeg henter dem igen fra DM, får jeg dem tilbage som en samlet streng. Og dette giver jo problemer, når jeg vil vise nogle variabler i felterne.

Har i nogle ideer til hvordan jeg henter disse tilbage og ikke har dem som en streng?

Mvh
Daniel
Avatar billede arne_v Ekspert
03. august 2009 - 13:04 #1
Hvis du gemmer hver værdi i et separat felt i databasen så bør du også kunne hente værdierne ud som separate værdier.

Prøv og vis os lidt kode.
Avatar billede DalleJava Nybegynder
03. august 2009 - 14:33 #2
Jeg ved ikke om det kan være her, eller give mening. Men her er noget af det der kan give mening.

Data ligger allerede fint i DB. Det er så her jeg henter dem igen.
Og jeg kan skrive dem til en liste. Men det er ikke det jeg ønsker mig.
Vil gerne have dem som objekter igen...

try
        { // Get driver for the database
          ArrayList al = new ArrayList();
          Class.forName( dbDriver ).newInstance();
          // Open connection to the database
          dbConn = DriverManager.getConnection(dbl, dbUser, dbPassword);
          Statement stmt = dbConn.createStatement();
         
          ResultSet rs = stmt.executeQuery("SELECT Fabrik, Dag, Dato, Måned, Opkaldkl, Dagnat, Teknikertilkaldt, Varighed, Hvemringede, Elog, Batchnummer, Hvadsigerproblemeter, Hvaderdetreelleproblem, Hvaderløsning, Betjeningsfejl, Løseproblemetselv, Opfølgning, Opfølgningtext FROM Tilkaldelog1");
          while (rs.next())
          {
           
            String fabrik            = rs.getString( "Fabrik"                );
            String dag                = rs.getString( "Dag"                    );
            String dato              = rs.getString( "Dato"                  );
            String måned              = rs.getString( "Måned"                  );
            String opkaldkl          = rs.getString( "Opkaldkl"              );
            String dagnat            = rs.getString( "Dagnat"                );
            String teknikertilkaldt  = rs.getString( "Teknikertilkaldt"      );
            String varighed          = rs.getString( "Varighed"              );
            String hvemringede        = rs.getString( "Hvemringede"            );
            String elog              = rs.getString( "Elog"                  );
            String batchnummer        = rs.getString( "Batchnummer"            );
            String hvadsigerproblemet = rs.getString( "Hvadsigerproblemeter"  );
            String hvarerreeltproblem = rs.getString( "Hvaderdetreelleproblem" );
            String hvaderløsning      = rs.getString( "Hvaderløsning"          );
            String betjeningsfejl    = rs.getString( "Betjeningsfejl"        );
            String løseproblemet      = rs.getString( "Løseproblemetselv"      );
            String opfølgning        = rs.getString( "Opfølgning"            );
            String opfølgningtext    = rs.getString( "Opfølgningtext"        );

           
           
            al.add(    fabrik            + " " + dag          + " " + dato              + " "
                      + måned              + " " + opkaldkl      + " " + dagnat            + " "
                      + teknikertilkaldt  + " " + varighed      + " " + hvemringede        + " "
                      + elog              + " " + batchnummer  + " " + hvadsigerproblemet + " "
                      + hvarerreeltproblem + " " + hvaderløsning + " " + betjeningsfejl    + " "
                      + løseproblemet      + " " + opfølgning    + " " + opfølgningtext);
           
            }
         

          jList1.setListData(al.toArray());

Undskylder rodet, men har sat det ok op på min egen skærm.

Er jeg på rette vej, hvis jeg kan se at det muligvis har noget at gøre med at jeg henter strenge som strenge og sætter sammen, istedet for at lave et objekt?

-Daniel
Avatar billede arne_v Ekspert
03. august 2009 - 17:16 #3
Du er lidt på rette vej.

Men den her duer ikke:

            al.add(    fabrik            + " " + dag          + " " + dato              + " "
                      + måned              + " " + opkaldkl      + " " + dagnat            + " "
                      + teknikertilkaldt  + " " + varighed      + " " + hvemringede        + " "
                      + elog              + " " + batchnummer  + " " + hvadsigerproblemet + " "
                      + hvarerreeltproblem + " " + hvaderløsning + " " + betjeningsfejl    + " "
                      + løseproblemet      + " " + opfølgning    + " " + opfølgningtext);

Den skal laves som:

            al.add( new Foobar(fabrik, dag, dato, måned, opkaldkl, dagnat, teknikertilkaldt, varighed, hvemringede, elog, batchnummer, hvadsigerproblemet, hvarerreeltproblem, hvaderløsning, betjeningsfejl,
løseproblemet, opfølgning, opfølgningtext));

hvor Foobar er din data klasse.
Avatar billede DalleJava Nybegynder
04. august 2009 - 08:05 #4
Hmm.

Jeg kan simpelthen ikke få det til at virke.
Da jeg afprøvede metoden, var første fejl at min klasse var abstract. Senere fejlede mine klasser der arver fra denne.

Jeg tosser vist godt rundt i det.
-Daniel
Avatar billede arne_v Ekspert
04. august 2009 - 22:19 #5
Kan du være lidt mere præcis med hvilken fejl du får ?
Avatar billede arne_v Ekspert
13. september 2009 - 03:42 #6
?
Avatar billede DalleJava Nybegynder
16. september 2009 - 12:00 #7
Hej alle.

Jeg har været væk grundet ferie.
Har fået løst problemet.

Det var min egen skyld og jeg havde kluntet godt rundt i det.
Havde simpelthen glemt at lave mine konstruktør i klassen. Så den blev hentet fint ind, men ikke genereret...

Dum dum fejl.
Undskylder at have spildt jeres tid.

Skal du have svar Arne?

Mvh
Daniel
Avatar billede arne_v Ekspert
16. september 2009 - 15:39 #8
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Banedanmark

Data Engineer

Cognizant Technology Solutions Denmark ApS

Senior Delivery Manager

IT & Co ApS

IT-tekniker