Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 14:52 Der er 6 kommentarer og
1 løsning

Angående opretning af opbject i servlet med 2 Resultset

Jeg har en bog der indeholder følgende konstruktører

public bog(int isbn, String forfatter, String titel, String forlag, String beskrivelse, int genreId) {
     
      this.isbn = isbn;
      this.forfatter = forfatter;
      this.titel = titel;
      this.forlag = forlag;
      this.beskrivelse = beskrivelse;
      this.genreId = genreId;
     
      }
     
      public bog(int isbn, String forfatter, String titel, String forlag, String beskrivelse, String genre) {
     
      this.isbn = isbn;
      this.forfatter = forfatter;
      this.titel = titel;
      this.forlag = forlag;
      this.beskrivelse = beskrivelse;
      this.genre = genre;
     
      }



Probmet er  at når jeg opretter en ny af en af disse opbjekter ok tilføjer dem et array, kan jeg kun få noget frem hvis jeg bruger følgende konstruktør

  public bog(int isbn, String forfatter, String titel, String forlag, String beskrivelse, int genreId) {
     
      this.isbn = isbn;
      this.forfatter = forfatter;
      this.titel = titel;
      this.forlag = forlag;
      this.beskrivelse = beskrivelse;
      this.genreId = genreId;
     
      }

Grunden til dette er nok at alle de data bliver hentet fra samme tabel i databasen med dette ResultSet

ResultSet rs = stmt.executeQuery("SELECT isbn, forfatter, titel, forlag, beskrivelse, genreid FROM boeger WHERE isbn = '" + isbnIn + "'");

Hernæst oprretter jeg alle de bøger der bliver fundet og ligger dem i et array og sender dem vidrer til en jsp side der så viser dem. Dette virker fint. Kode følger


ArrayList showBook = new ArrayList();

while(rs.next()) {
   
showBook.add(new bog(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getInt(6)));

Problmet er at i tabellen ligger der et genreId der refererer til en bestemt genre, derfor ønsker jeg at oprette en bog med denne konstruktør

      public bog(int isbn, String forfatter, String titel, String forlag, String beskrivelse, String genre) {
     
      this.isbn = isbn;
      this.forfatter = forfatter;
      this.titel = titel;
      this.forlag = forlag;
      this.beskrivelse = beskrivelse;
      this.genre = genre;
     
      }

Hertil ville jeg bruge følgende Resultset

ResultSet rs = stmt.executeQuery("SELECT isbn, forfatter, titel, forlag, beskrivelse FROM boeger WHERE isbn = '" + isbnIn + "' AND select navn from genre WHERE id = '" + genreId + "' ");

Hernædt bruger jeg en anden konstruktør der så skulle oprette bøgerne bare med et navn som genre istedet for et nummer(id)

ArrayList showBook = new ArrayList();

while(rs.next()) {
   
showBook.add(new bog(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6)));


Dette virker umiddelbart ikke, den viser ikke nogele resultater i jsp side, som den gjorde ved den første konstruktør.

Nogle der kan hjælpe? Bare sprørg efter kode, dette er kun et udsnit
Avatar billede arne_v Ekspert
24. november 2004 - 15:00 #1
Du skal vel bruge en JOIN !?
Avatar billede arne_v Ekspert
24. november 2004 - 15:02 #2
ResultSet rs = stmt.executeQuery("SELECT boeger.isbn, boeger.forfatter, boeger.titel, boeger.forlag, boeger.beskrivelse,genre.navn FROM boeger,genre WHERE isbn = '" + isbnIn + "' AND boeger.genreId = genre.id");
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 15:04 #3
ja jeg tænke på noget lignende
Data ind
genreId
Isbn

SELECT isbn, forfatter, titel, forlag, beskrivelse, navn FROM boeger, genre WHERE boeger.isbn = '" + isbnIn + "' AND WHERE genre.id ='" + isbnIn + "'"

Men det virker ikke

Jeg har en tabel der hedder boeger der indeholder

String Forfatter
String Titel
String Forlag
Int GenreId
String Beskrivelse
Int ISBN

En tabel der heder genre der indeholder

int id (id'et på genren)
String navn

Men kan ikke få det til at virke
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 15:05 #4
Ok prøver det lige
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 15:08 #5
Virker ikke den skriver nu bare et 0 i genre hvor der burde stå et navn som en string
Avatar billede noerdar-dilling Nybegynder
24. november 2004 - 15:10 #6
Ok det virker tak, manglede lige at ændre i jsp filen, at den skulle tage Genre istedet for genreId. Send et svar. Tak for det
Avatar billede arne_v Ekspert
24. november 2004 - 15:10 #7
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